初探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
本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。