热门推荐
大数据分析查询引擎Impala
2024-11-04 01:23

天下武功,唯快不破。

大数据分析查询引擎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】的全部内容了,欢迎阅览 ! 文章地址:http://houdi.cs-ej.cn/quote/332.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 成事e家移动站 http://houdi.cs-ej.cn/mobile/ , 查看更多