Apache Impala架构解析及与Hive、SparkSQL的性能比较_hive引擎执行效率对比(4)
Planner > FE(JAVA):负责解析查询请求,并生成执行计划树(Query Plan Tree)。
Coordinator > BE(C++):拆解请求(Fragment),负责定位数据位置,并发送请求到Exec Engine,汇聚请求结果上报。
Exec Engine > BE(C++):执行Fragment子查询,比如scan,Aggregation,Merge etc。
statestore server:维护Impalad的伙伴关系,负责通知伙伴关系变化,类似于仪表盘的zk的故障监控功能。
meta server:
Hive Meta Storage:用户维护表的schema信息等元数据(存在于一个关系型数据库)。
NameNode of HDFS:用于定位hdfs的数据位置。
HMaster of HBase:用于定位HBase的数据的位置。
storage server:
HDFS:HDFS的DataNode服务。
HBASE:HBase的RegionServer服务。
四、Impala的优缺点
- Impala的优点
-
Impala不需要把中间结果写入磁盘,省掉了大量的I/O开销。
-
省掉了MapReduce作业启动的开销。MapReduce启动task的速度很慢(默认每个心跳间隔是3秒钟),Impala直接通过相应的服务进程来进行作业调度,速度快了很多。
-
Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想另起炉灶,因此可做更多的查询优化,从而省掉不必要的shuffle、sort等开销。
-
通过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。
-
用C++实现,做了很多有针对性的硬件优化,例如使用SSE指令。
-
使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销
- Impala的缺点
-
Impala不提供任何对序列化和反序列化的支持。
-
Impala只能读取文本文件,而不能读取自定义二进制文件。
-
每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新
五、Impala的功能
1.Impala可以根据Apache许可证作为开源免费提供。
2.Impala支持内存中数据处理,它访问/分析存储在Hadoop数据节点上的数据,而无需数据移动。
3.Impala为HDFS中的数据提供了更快的访问。
4.可以将数据存储在Impala存储系统中,如Apache HBase和Amazon s3。
5.Impala支持各种文件格式,如LZO,序列文件,Avro,RCFile和Parquet。
6.使用Impala,您可以使用传统的SQL知识以极快的速度处理存储在HDFS中的数据。
7.由于在数据驻留(在Hadoop集群上)时执行数据处理,因此在使用Impala时,不需要对存储在Hadoop上的数据进行数据转换和数据移动。
8.使用Impala,您可以访问存储在HDFS,HBase和Amazon s3中的数据,而无需了解Java(MapReduce作业)。您可以使用SQL查询的基本概念访问它们。
9.为了在业务工具中写入查询,数据必须经历复杂的提取 - 变换负载(ETL)周期。但是,使用Impala,此过程缩短了。加载和重组的耗时阶段通过新技术克服,如探索性数据分析和数据发现,使过程更快。
六、Hive、SparkSQL、Impala性能对比
参照cloudera公司做的性能基准对比测试,所有测试都运行在一个完全相同的21节点集群上,每个节点只配有64G内存。之所以内存不配大,就是为了消除人们对于Impala只有在非常大的内存上才有好性能的错误认识。
配置:
- 双物理CPU,每个12核,Intel Xeon CPU E5-2630L 0 at 2.00GHz
- 12个磁盘驱动器,每个磁盘932G,1个用作OS,其它用作HDFS
- 每节点64G内存
对比产品:
- Impala
- Hive-on-Tez
- Spark SQL
- Presto
查询:
- 21个节点上的数据量为15T
- 测试场景取自TPC-DS,一个开放的决策支持基准(包括交互式、报表、分析式查询)
- 由于除Impala外,其它引擎都没有基于成本的优化器,本测试使用的查询都使用SQL-92标准的连接
- 采用统一的Snappy压缩编码方式,各个引擎使用各自最优的文件格式,Impala和Spark SQL使用Parquet,Hive-on-Tez使用ORC,Presto使用RCFile。
- 对每种引擎多次运行和调优
结果:
单用户如下图所示:




既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)