千家信息网

大数据分析查询引擎Impala的原理及用法是什么

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,大数据分析查询引擎Impala的原理及用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Impala概述准实时
千家信息网最后更新 2024年11月19日大数据分析查询引擎Impala的原理及用法是什么

大数据分析查询引擎Impala的原理及用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一、Impala概述

准实时分析系统Impala,提供SQL语义,能够为存储在Hadoop的HDFS和Hbase中的PB级大数据提供快速、交互式的SQL查询。传统仓库查询工具Hive底层是基于MapReduce引擎处理,是一个批处理过程,难以满足快速响应的查询,而Impala是基于MPP的查询系统,最大特点就是快速。

二、Impala组件构成

Impala由以下的组件组成:

1、Clients:Hue、ODBC clients、JDBC clients和Impala Shell都可以与Impala进行交互,这些接口都可以用在Impala的数据查询以及对Impala的管理。

2、Hive Metastore: 存储Impala可访问数据的元数据。例如,这些元数据可以让Impala知道哪些数据库以及数据库的结构是可以访问的,当你创建、删除、修改数据库对象或者加载数据到数据表里面,相关的元数据变化会自动通过广播的形式通知所有的Impala节点,这个通知过程由catalog service完成。

3、Cloudera Impala: Impala的进程运行在各个数据节点(Datanode)上面。每一个Impala的实例都可以从Impala client端接收查询,进而产生执行计划、协调执行任务。数据查询分布在各个Impala节点上,这些节点作为worker,并行执行查询。

4、HBase和HDFS: 存储用于查询的数据。

三、Impala 系统架构

Impala整体分为两部分 StateStore 和 Impalad。

StateStore是Impala的子服务,用来监控集群中各个节点的健康状况,提供节点注册,错误检测等功能。

Impalad是运行在集群每个节点的守护进程,主要有两个作用,一个是协调Client提交的Query的执行,给其他Impalad分配任务,收集其他Impalad的执行结果进行汇总,二是这个Impalad也会执行其他Impalad给分配的任务,执行这部分任务主要就是对本地HDFS和Hbase里的部分数据进行操作。

四、Impala 查询处理流程

1、三类客户端可与Impala进行交互:

基于驱动程序客户端ODBC driver 和 JDBC driver

Hue接口,可以通过Hue Beeswax接口来与Impala进行交互

Impala shell 命令行

2、Impala使用Hive Metastore来存在元数据,Impala会在HDFS集群的DataNode上启动进程,协调位于集群上的多个Impala进程(即Impalad)执行查询,在Impala架构中,每个Impala节点都可以接收来自客户端的查询请求,然后负责解析查询,生产查询计划,并进行优化,协调查询请求在多个impalad上并行处理,最终有负责接收请求的impala节点汇总结果,响应客户端。

五、Impala和Hive的关系和对比

1、Hive适合长时间的批处理查询分析,而Impala适合于实时交互式SQL查询。

2、Hive是基于MapReduce进行并行计算,而Impala把整个查询分析成一个执行计划树,而不是一连串的MapReduce任务,他使用与商用并行关系数据库MPP中类似的查询机制。

3、Impala速度快于Hive,原因在于Impala不需要把中间结果写入磁盘,省掉了大量的I/O开销,Impala省掉了MapReduce作业启动的开销。

4、Impala适合用来处理输出数据适中或比较小的且对响应时间有要求的查询,而对于大数据量的批处理任务,MapReduce依然是更好的选择。

5、Impala可以与Hive配合使用,比如先使用Hive对数据进行转换处理,然后使用Impala对处理后的数据进行快速数据分析。

六、Impala与Presto 比较

共同点就是吃内存,当然在内存充足的情况下,并且有规模适当的集群,性能应该会更可观,Impala性能稍领先于presto,但是presto在数据源支持上非常丰富,包括hive、图数据库、传统关系型数据库、Redis等。

七、impala presto SparkSql性能测试对比

impala与presto性能相当,SparkSql逊色不少

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0