Hive vs Impala
生活随笔
收集整理的这篇文章主要介绍了
Hive vs Impala
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
目标
Apache Hive和Impala都可以在HDFS上执行查询,但是他们之间存在一些不同,在这片文章中,将会做一下对比。
介绍
Hive
一般使用Hive做数据密集型任务,例如查询,分析,处理,可视化。刚开始是由Facebook开发。Hive是基于Hadoop平台构建的数据仓库,当然也兼容其他的文件系统,例如S3。Hive提供HQL语言来读取数据并转换查询到MapReduce,Tez,Spark jobs,Hive有以下特性
Impala
Impala是一个开源的MPP SQL引擎。可以在HDFS,Hbase上运行查询。在数据处理时,impala并不会优先在节点之间移动数据,可以与Hadoop生态系统很好集成。作为一个开源的交互式BI任务,Impala的统一资源管理是它成为一个标准。
Hive vs Impala
| 查询处理 | 普遍存在冷启动的问题 | 避免可能的启动压力,Impala后端进程总是处在启动状态,随时处理查询 |
| 中间结果 | Hive会物质化中间结果,这样增加可伸缩性,容错能力,但是会减慢数据处理速度 | 在executors之间进行流式传输中间结果,但是会带来伸缩性问题 |
| 运行期间 | 在编译时间,Hive形成查询表达式 | 在运行期间,Impala形成代码 |
| 交互式计算 | 对于交互式查询,Hive并不是理想 | 对于交互式查询,Impala是可选的 |
| 类型 | 是基于批量的Hadoop MapReduce | 更像MPP数据库 |
| 复杂类型 | 支持复杂类型 | 不支持复杂类型 |
| 查询执行 | Hive查询的结果具有容错能力,尽管有节点宕机 | 在查询执行中,如果节点宕机,那么Impala重新执行 |
| 性能 | Hive适合运行中等或者高级复杂查询,低端查询使用Hive LLAP | 尽管Impala一直在优化复杂查询,但是更适合低端查询 |
| 查询SQL | Hive LLAP允许进行亚秒级的交互式查询,不需要额外的分析工具 | 提供快速的,交互式的SQL查询 |
| 时间消耗 | Hive LLAP的动态运行特性减少工作压力,使用LLAP可以减少时间消耗 | 对于简单的查询,消耗更少的时间,但是对于复杂的查询,比LLAP消耗更多的时间 |
| 直接交互 | LLAP是一个长运行的进程,可以代替与HDFS直连,紧密集成基于DAG框架 | Impala需要在HDFS,hbase上有文件 |
| ETL jobs | 对于长运行的jobs,Hive是理想的选择 | NA |
| 速度 | NA | Impala比Hive块6-69倍 |
总结
以上是生活随笔为你收集整理的Hive vs Impala的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Visio制作的图像转换为eps教程
- 下一篇: 定位的困惑