Impala 详细介绍

1.Impala的基本概念

1.1 什么是Impala

    Cloudera 公司推出,提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能。基于Hive,使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点。是CDH平台首选的PB级大数据实时查询分析引擎。

    Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。 它是一个用C ++和Java编写的开源软件。 与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。

    换句话说,Impala是性能最高的SQL引擎(提供类似RDBMS的体验),它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。

 

1.2 Impala的特点

    impalak快的原因:1.2.1、1.2.2、1.2.3、1.2.6

1.2.1 基于内存进行计算,能够对PB级数据进行交互式实时查询、分析

1.2.2 无需转换为MR,直接读取HDFS及Hbase数据 ,从而大大降低了延迟。

    Impala没有MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成

1.2.3 C++编写,LLVM统一编译运行

    在底层对硬件进行优化, LLVM:编译器,比较稳定,效率高

1.2.4 兼容HiveSQL

    支持hive基本的一些查询等,hive中的一些复杂结构是不支持的

1.2.5 具有数据仓库的特性,可对hive数据直接做数据分析

1.2.6 支持Data Local

    数据本地化:无需数据移动,减少数据的传输

1.2.7 支持列式存储

    可以和Hbase整合:因为Hive可以和Hbasez整合

1.2.8 支持JDBC/ODBC远程访问

 

1.3 Impala的优缺点

1.3.1 Impala的优点

    • 支持SQL查询,快速查询大数据。

    • 可以对已有数据进行查询,减少数据的加载,转换。

    • 多种存储格式可以选择(Parquet, Text, Avro, RCFile, SequeenceFile)。

    • 可以与Hive配合使用。

1.3.2 Impala的缺点

    • 不支持用户定义函数UDF。

    • 不支持text域的全文搜索。

    • 不支持Transforms。

    • 不支持查询期的容错。

    • 对内存要求高。

 

1.4 Impala的组成

 

1.5 Impala的运行原理

    Impala执行查询的具体过程:

    • 当用户提交查询前,Impala先创建一个负责协调客户端提交的查询的Impalad进程,该进程会向Impala State Store提交注册订阅信息,State Store会创建一个statestored进程,statestored进程通过创建多个线程来处理Impalad的注册订阅信息。

    • 用户通过CLI客户端提交一个查询到impalad进程,Impalad的Query Planner对SQL语句进行解析,生成解析树;然后,Planner把这个查询的解析树变成若干PlanFragment,发送到Query Coordinator.

    • Coordinator通过从元数据库中获取元数据,从HDFS的名称节点中获取数据地址,以得到存储这个查询相关数据的所有数据节点。

    • Coordinator初始化相应impalad上的任务执行,即把查询任务分配给所有存储这个查询相关数据的数据节点。

    • Query Executor通过流式交换中间输出,并由Query Coordinator汇聚来自各个impalad的结果。

    • Coordinator把汇总后的结果返回给

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值