栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Impala基本介绍及架构介绍

Impala基本介绍及架构介绍

impala基本介绍

impala是cloudera 提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快3到10倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具。

impala是基于hive并使用内存进行计算,兼顾数据仓库,具有实时,批处理,多并发等优点。

impala数据流理解

impala优点与缺点 优点

1、基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销。
2、无需转换为Mapreduce,直接访问存储在HDFS,Hbase中的数据进行作业调度,速度快。
3、使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。
4、支持各种文件格式,如TEXTFILE 、SEQUENCEFILE 、RCFile、Parquet。
5、可以访问hive的metastore,对hive数据直接做数据分析。
 

缺点

1、对内存的依赖大,且完全依赖于hive。
2、实践中,分区超过1万,性能严重下降。
3、只能读取文本文件,而不能直接读取自定义二进制文件。
4、每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新

impala的架构模块

1、impala-server ==>启动的守护进程,执行我们的查询计划从节点 (计算节点、从节点)

官方建议与所有的datanode 装在译器,可以通过hadoop的短路读取特性实现数据快速查询

2、impala-statestore ==> 状态存储区 (主节点)

3、impala-catalog ==> 元数据管理区 (主节点)

查询执行

impala分为 frontend和backend两个层次,frondend用Java实现(通过JNI嵌入impala),负责查询计划生成,而backend用C++实现,负责查询执行

frontend生成查询计划分为两个阶段:

1、生成单机查询计划,单机执行计划与关系数据库执行计划相同,所用查询优化方法也类似。

2、生成分布式查询计划,根据单机执行计划,生成真正可执行的分布式执行计划,降低数据移动,尽量把数据和计算放在一起

impala相关系统对比
相关系统对比
HIVESparkImpala
概要Hive是老牌的SQL-on-Hadoop解决方案

spark之上的交互式SQL解决方案

提供Dataframe API作为SQL补充,方便实现ETL、分析、机器学习等复杂逻辑。

SparkSQL使用scala定义UDF,非常方便

Hadoop上交互式MPP SQL引擎
容错强。中间结果罗盘,容错能力强,最细粒度容错。 较强。基于数据血缘关系的数据回复。弱。遇到问题时,需要重做查询
性能慢,MR启动慢中间结果落盘较快,基于RDD模型,DAG执行基于代价的查询优化内存基于列存储编译执行(生成java字节码)Java实现

快。MPP架构基于代价的查询优化,Join优化LLVM查询编译

C++实现向量执行引擎,可使用SSE指令列存IO本地化资源管理器优化(LLAM)

LL

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/701582.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号