乐知付加密服务平台

如果你有资源, 平台可以帮你实现内容变现, 无需搭建知识付费服务平台。

点击访问官方网站 https://lezhifu.cc

扫码关注公众号 乐知付加密服务平台-微信公众号
Impala和Hive的对比 | chenzuoli's blog

Impala和Hive的对比

      Impala和Hive两者都是构建在Hadoop之上的大数据查询分析工具,他们之间有什么区别和联系呢?

1.从客户端来看

      Impala和Hive有许多相同之处,如数据表元数据、ODBC/JDBC驱动、SQL语法等,但是他们还是有不同之处的,Hive适合长时间的批处理查询分析,而Impala适合实时交互式查询分析。Impala给数据分析人员提供了快速实验、验证想法的大数据分析工具,可以先使用hive进行数据转换处理,然后使用Impala在Hive处理后的结果集之上进行快速的数据分析。
      下图可以看下Impala和Hive的区别与联系:
impala_hive_diff

2.从技术上来看

  • 执行计划:Impala没有使用Mr进行并行计算,mr是面向批处理的方式,而Impala是面向交互式的并行计算。Impala把整个查询解析成执行计划树,在分发执行计划后,使用拉式获取计算结果,把结果数据组成按执行树流式传递汇集,减少了中间结果写入磁盘的步骤,再从磁盘读取数据的开销;
  • 执行方式:Impala使用服务的方式,避免每次执行查询都要启动的开销,即相比Hive节省了启动mapreduce的开销;
  • 数据存储:都支持把数据存储在HDFS和HBase;
  • 元数据:使用相同的元数据;
  • Sql解析:比较相似,都是通过语法分析生成的执行计划;
  • 数据流:
    • Hive:采用推的方式,每一个计算节点task执行完成之后将计算结果一起推送给下一个task;
    • Impala:采用拉的方式,后续节点通过getNext,主动向前面的节点拉取数据,以此方式获取结果以流的形式返回给客户端,只要有1条结果数据,就会立即展现在客户端,不用等到全部处理完,更符合交互式查询使用;

3.总结

      所以,Hive适合复杂的批处理查询,数据转换任务,而Impala适合实时数据分析,配合Hive使用,对hive的结果数据进行实时分析。


Heath is certainly more important than money.

书山有路勤为径,学海无涯苦作舟。

欢迎关注微信公众号:【程序员写书】
程序员写书

喜欢宠物的朋友可以关注:【电巴克宠物Pets】
电巴克宠物

一起学习,一起进步。

-------------本文结束感谢您的阅读-------------