欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

初探Apache Impala

发布时间:2024/2/28 编程问答 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 初探Apache Impala 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Impala是什么?

Impala提高了Apache Hadoop上SQL查询性能的标准,同时保留了熟悉的用户体验。使用Impala,您可以实时查询存储在HDFS或Apache HBase中的数据-包括SELECT,JOIN和聚合函数。此外,Impala使用与Apache Hive相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax),为面向批处理或实时查询提供了一个熟悉且统一的平台。(因此,Hive用户可以以很少的设置开销使用Impala。)它是一个用C ++和Java编写的开源软件。 与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。换句话说,Impala是性能最高的SQL引擎(提供类似RDBMS的体验),它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。

架构:

为了避免延迟,Impala避开了MapReduce通过与商业并行RDBMS中非常相似的专用分布式查询引擎直接访问数据。其结果是,性能比Hive快了几个数量级,具体取决于查询和配置的类型。

   优点

  • Impala不需要把中间结果写入磁盘,省掉了大量的I/O开销。
  • 省掉了MapReduce作业启动的开销。MapReduce启动task的速度很慢(默认每个心跳间隔是3秒钟),Impala直接通过相应的服务进程来进行作业调度,速度快了很多。
  • Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想另起炉灶,因此可做更多的查询优化,从而省掉不必要的shuffle、sort等开销。
  • 通过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。
  • 用C++实现,做了很多有针对性的硬件优化,例如使用SSE指令。
  • 使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。

 

  功能

  • Impala可以根据Apache许可证作为开源免费提供。
  • Impala支持内存中数据处理,它访问/分析存储在Hadoop数据节点上的数据,而无需数据移动。
  • 使用类SQL查询访问数据。
  • Impala为HDFS中的数据提供了更快的访问。
  • 可以将数据存储在Impala存储系统中,如Apache HBase和Amazon s3。
  • Impala支持各种文件格式,如LZO,序列文件,Avro,RCFile和Parquet。

对于关系数据库和Impala

Impala使用类似于SQL和HiveQL的Query语言。 下表描述了SQL和Impala查询语言之间的一些关键差异。

Hive,Hbase和Impala

虽然Cloudera Impala使用与Hive相同的查询语言,元数据和用户界面,但在某些方面它与Hive和HBase不同。 下表介绍了HBase,Hive和Impala之间的比较分析。

 

所有这三个数据库 - 

是NOSQL数据库。

可用作开源。

支持服务器端脚本。

按照ACID属性,如Durability和Concurrency。

使用分片进行分区。

部分摘自:https://blog.csdn.net/linxiyimeng007/article/details/80943378

总结

以上是生活随笔为你收集整理的初探Apache Impala的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。