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的优缺点

  1. Impala的优点
  1. Impala不需要把中间结果写入磁盘,省掉了大量的I/O开销。

  2. 省掉了MapReduce作业启动的开销。MapReduce启动task的速度很慢(默认每个心跳间隔是3秒钟),Impala直接通过相应的服务进程来进行作业调度,速度快了很多。

  3. Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想另起炉灶,因此可做更多的查询优化,从而省掉不必要的shuffle、sort等开销。

  4. 通过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。

  5. 用C++实现,做了很多有针对性的硬件优化,例如使用SSE指令。

  6. 使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销

  1. Impala的缺点
  1. Impala不提供任何对序列化和反序列化的支持。

  2. Impala只能读取文本文件,而不能读取自定义二进制文件。

  3. 每当新的记录/文件被添加到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

查询:

  1. 21个节点上的数据量为15T
  2. 测试场景取自TPC-DS,一个开放的决策支持基准(包括交互式、报表、分析式查询)
  3. 由于除Impala外,其它引擎都没有基于成本的优化器,本测试使用的查询都使用SQL-92标准的连接
  4. 采用统一的Snappy压缩编码方式,各个引擎使用各自最优的文件格式,Impala和Spark SQL使用Parquet,Hive-on-Tez使用ORC,Presto使用RCFile。
  5. 对每种引擎多次运行和调优

结果:
单用户如下图所示:

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐