当前位置:首页 > 时尚生活

impala Impala与Hive的比较

今天整理了一下项目使用的Impala数据库相关资料~

希望能给大家带来帮助~缺点请多多指教~

首先,黑斑羚和蜂巢首先明白

(1)Impala和Hive是对HDFS/Hbase数据进行SQL查询的工具。Hive将被转换成MapReduce,并由纱计划访问HDFS数据。黑斑羚直接向HDFS询问数据。

(2)Apache Hive是MapReduce的高级抽象。使用HiveQL,Hive可以生成Hadoop集群中运行的MapReduce或Spark作业。Hive最初是Facebook在2007年左右开发的,现在是Apache的开源项目。

ApacheImpala是一款高性能的特殊SQL引擎,使用的是Impala SQL,因为Impala可以直接查询数据块,不需要任何框架,所以查询延迟为毫秒级。Impala受谷歌Dremel项目的启发,由Cloudera于2012年开发,现在是一个Apache开源项目。

二、黑斑羚和蜂巢的关系

Impala是一个基于Hive的大数据实时分析查询引擎,直接使用Hive的Metadata,即Impala元数据存储在Hive的metastore中,Impala兼容Hive的sql解析,实现了Hive的SQL语义的一个子集,很多功能还在改进中。

Hadoop中Impala和Hive的关系如下图所示。Hive适合长时间批量查询分析,Impala适合实时交互的SQL查询。Impala为数据分析师提供了一个大数据分析工具,可以快速实验和验证想法。先用Hive进行数据转换,再用Impala对Hive处理后的结果数据集进行快速数据分析。

第三,黑斑羚与蜂巢相比所采用的优化技术

1.MapReduce不用于并行计算。虽然MapReduce是一个非常好的并行计算框架,但是它比交互式SQL执行更面向批处理模式。与MapReduce相比,Impala将整个查询划分为一个执行计划树,而不是一系列MapReduce任务。执行计划分发后,Impala通过拉取数据获得结果,并将结果数据组装成执行树,减少了将中间结果写入磁盘,然后从磁盘读取数据的步骤。Impala使用服务来避免启动每次查询执行的开销,也就是说,与Hive相比,它没有MapReduce启动时间。

2.更好的IO调度。Impala知道数据块的位置,可以更好的利用多个磁盘的优势。Impala支持直接数据块读取和本地代码计算校验和。

3.选择合适的数据存储格式可以获得最佳性能(Impala支持多种存储格式)。

4.最大限度的利用内存,中间结果不写入磁盘,以流的形式通过网络及时传输。

5.使用LLVM生成运行代码,并为特定查询生成特定代码。同时,使用Inline降低函数调用成本,加快执行效率。

6.充分利用可用的硬件指令(SSE4.2)。

四.黑斑羚和蜂房的异同

1.类似

数据存储:

使用相同的存储数据池支持在HDFS存储数据。

元数据:两者使用相同的元数据。

SQL解释处理:类似于通过词法分析生成执行计划。

2.差异

执行计划:

Hive:根据MapReduce执行框架,执行计划分为map->:shuffle->;reduce->;地图->;shuffle->该模型能有效地降低生产成本。如果一个查询被编译成多轮MapReduce,将会有更多的中间结果。由于MapReduce执行框架本身的特点,过多的中间进程会增加整个Query的执行时间。

impala:将执行计划表示为一个完整的执行计划树,可以更自然的将执行计划分配给每个Impala执行查询,而不是像Hive-->:Reduce模式那样组合成一个管道图,保证Impala有更好的并发性,避免不必要的中间排序和洗牌。

数据流:

蜂巢:采用推送方式。每个计算节点完成计算后,主动将数据推送到后续节点。

Impala:使用pull方法,后续节点通过getNext主动向之前的节点请求数据,这样数据就可以以流的方式返回给客户端,只要处理完一条数据,就可以立即显示出来,而不是等待所有的处理完成,更适合于SQL交互查询。

内存使用情况:

配置单元:如果在执行过程中内存不能容纳所有的数据,那么将使用外部内存来确保查询能够按顺序执行。在每轮MapReduce结束时,中间结果也将被写入HDFS。同样,由于MapReduce执行架构的特点,洗牌过程也会有写入本地磁盘的操作。

Impala:当数据无法存储在内存中时,当前的1.0.1版本直接返回错误,不使用外部内存,未来版本需要改进。这使得Impala目前对Query的处理受到一定的限制,所以最好和Hive一起使用。Impala使用网络在多个阶段之间传输数据,执行过程中没有磁盘写操作(插入除外)。

计划:

Hive:任务调度依赖Hadoop调度策略。

英帕拉:排班自己做。目前只有一种调度器,simple-schedule,会尽量满足数据的局部性,扫描数据的过程尽量靠近数据本身所在的物理机。目前调度器比较简单,从SimpleScheduler::get后端可以看出,调度没有考虑负载、网络IO状态等因素。但是目前Impala对执行过程的性能有统计分析,所以在未来的版本中应该使用这些统计信息进行调度。

容错:

Hive:要看Hadoop的容错能力。

Impala:查询过程中没有容错逻辑。如果执行过程中出现故障,会直接返回错误(这和Impala的设计有关,因为Impala位于实时查询中,一旦查询失败,再检查一次就好了,再检查的成本很低)。但总体来说,黑斑羚是容错的,所有黑斑羚都是同等结构。用户可以向任何黑斑羚提交查询。如果一个Impala失败,其上运行的所有查询都会失败,但是用户可以在不影响服务的情况下,代替其他Impala重新提交查询并执行。目前只有一个StateStore,但是State Store出现故障时,不会影响服务。每个穿刺缓存状态存储的信息,但集群状态不能再更新。执行任务有可能会被分配给过期的穿刺执行,从而导致此查询失败。

适用范围:

Hive:复杂的批量查询任务和数据转换任务。

Impala:实时数据分析。因为不支持UDF,所以能处理的问题域有限。与Hive结合使用,实时分析Hive的结果数据集。

-结束-

Ebistrategy

1.《impala Impala与Hive的比较》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《impala Impala与Hive的比较》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/1152028.html

上一篇

多彩的英文 多彩英语 绘出快乐|英语作业的正确打开方式

下一篇

qq相册封面 朋友圈背景图,qq空间封面图

联合研究中方专家组:中国没给原始数据假设和提法不成立 还原事发经过及背后原因!

联合研究中方专家组:中国没给原始数据假设和提法不成立 还原事发经过及背后原因!

中国没给原始数据假设和提法不成立中国—世界卫生组织新冠病毒溯源联合研究中方专家组组长、清华大学教授梁万年在31日的发布会上说,中外专家在武汉一直坚持四个共同原则,共同在做研究计划、共同在分析,中方专家掌握的信息和外方专家掌握的信息不存在差异。不是中方研究中方的,外方研究外方的。有些数据按照中国法律,是不能带走或拍照的,但是在武汉的分析都是一起做的。...

无法读源文件或磁盘

无法读源文件或磁盘

删除文件或文件夹时出现错误,提示源文件或磁盘无法读取,怎么办?这时候我们首先需要确认是否是系统文件,这是一个隐藏文件。如果是,则不能删除,有时会发生删除。您可以创建一个批处理,右击桌面-创建一个新的文本文档-编写以下命令:DEL /F /A /...

王者荣耀大乔被×图 王者荣耀:大乔被大家叫成老阿姨,于是就让守约夸她年轻,结果…

  • 王者荣耀大乔被×图 王者荣耀:大乔被大家叫成老阿姨,于是就让守约夸她年轻,结果…
  • 王者荣耀大乔被×图 王者荣耀:大乔被大家叫成老阿姨,于是就让守约夸她年轻,结果…
  • 王者荣耀大乔被×图 王者荣耀:大乔被大家叫成老阿姨,于是就让守约夸她年轻,结果…

郑州树青医学院 郑州澍青医学高等专科学校2018年招生计划

郑州澍青医学院 郑州澍青医学高等专科学校2018年招生计划

窗帘市场 行业数据|未来四年,墙布窗帘行业规模有望翻两番

  • 窗帘市场 行业数据|未来四年,墙布窗帘行业规模有望翻两番
  • 窗帘市场 行业数据|未来四年,墙布窗帘行业规模有望翻两番
  • 窗帘市场 行业数据|未来四年,墙布窗帘行业规模有望翻两番

郑州澍青医专 郑州澍青医学高等专科学校2018年招生计划

菠萝蜜核煮多久 吃剩菠萝蜜核泡水里就能长出小苗,四季都能结果

  • 菠萝蜜核煮多久 吃剩菠萝蜜核泡水里就能长出小苗,四季都能结果
  • 菠萝蜜核煮多久 吃剩菠萝蜜核泡水里就能长出小苗,四季都能结果
  • 菠萝蜜核煮多久 吃剩菠萝蜜核泡水里就能长出小苗,四季都能结果