Hive vs Impala

目标

Apache Hive和Impala都可以在HDFS上执行查询,但是他们之间存在一些不同,在这片文章中,将会做一下对比。

介绍

Hive

一般使用Hive做数据密集型任务,例如查询,分析,处理,可视化。刚开始是由Facebook开发。Hive是基于Hadoop平台构建的数据仓库,当然也兼容其他的文件系统,例如S3。Hive提供HQL语言来读取数据并转换查询到MapReduce,Tez,Spark jobs,Hive有以下特性

  1. 提供索引加速处理
  2. Hive支持各种类型的存储,例如文本,RCFile,HBase,ORC
  3. 支持元数据存储
  4. 支持SQL查询,尽管底层会把SQL转换为MapReduce,Tez,Spark
  5. 处理字符串,日期数据时,可以使用内建方法,也可以自建方法

Impala

Impala是一个开源的MPP SQL引擎。可以在HDFS,Hbase上运行查询。在数据处理时,impala并不会优先在节点之间移动数据,可以与Hadoop生态系统很好集成。作为一个开源的交互式BI任务,Impala的统一资源管理是它成为一个标准。

  1. Impala支持HDFS,Hbase
  2. Impala支持Hadoop文件格式,例如文本,LZO,Avro,RCFile,Parquet
  3. 支持Kerberos验证
  4. 集成Sentry,也支持基于角色的授权

Hive vs Impala

HiveImpala
查询处理普遍存在冷启动的问题避免可能的启动压力,Impala后端进程总是处在启动状态,随时处理查询
中间结果Hive会物质化中间结果,这样增加可伸缩性,容错能力,但是会减慢数据处理速度在executors之间进行流式传输中间结果,但是会带来伸缩性问题
运行期间在编译时间,Hive形成查询表达式在运行期间,Impala形成代码
交互式计算对于交互式查询,Hive并不是理想对于交互式查询,Impala是可选的
类型是基于批量的Hadoop MapReduce更像MPP数据库
复杂类型支持复杂类型不支持复杂类型
查询执行Hive查询的结果具有容错能力,尽管有节点宕机在查询执行中,如果节点宕机,那么Impala重新执行
性能Hive适合运行中等或者高级复杂查询,低端查询使用Hive LLAP尽管Impala一直在优化复杂查询,但是更适合低端查询
查询SQLHive LLAP允许进行亚秒级的交互式查询,不需要额外的分析工具提供快速的,交互式的SQL查询
时间消耗Hive LLAP的动态运行特性减少工作压力,使用LLAP可以减少时间消耗对于简单的查询,消耗更少的时间,但是对于复杂的查询,比LLAP消耗更多的时间
直接交互LLAP是一个长运行的进程,可以代替与HDFS直连,紧密集成基于DAG框架Impala需要在HDFS,hbase上有文件
ETL jobs对于长运行的jobs,Hive是理想的选择NA
速度NAImpala比Hive块6-69倍
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值