Hive 和 Impala的比较

Hive 和 Impala的异同

Hive是一个建立在APACHE HADOOP之上的数据仓库软件项目,由Jeff在Facebook的团队开发,目前已经发布了2.3.0的稳定版本。它被用于总结大数据,使查询和分析变得容易。Apache Hive是SQL-in Hadoop的有效标准。Impala是一个运行在Apache Hadoop上的并行处理SQL查询引擎,用于处理存储在HBase (Hadoop数据库)和Hadoop分布式文件系统中的数据。Impala是一个用于并行处理(MPP) SQL查询引擎的开源产品,用于存储在运行于Apache Hadoop上的本地系统集群中的数据。Apache Hive和Impala都是Hadoop系统的关键部分。

让我们来详细研究一下Hive和Impala:

HIVE

  • Apache Hive帮助分析存储在Hadoop文件系统(HDFS)和其他兼容文件系统中的庞大数据集。
  • 用于查询存储在Hadoop集群中的数据。
  • 通过翻译利用Hadoop的可伸缩性。
  • Hive不是一个完整的数据库。
  • 它不提供记录级别的更新。
  • Hadoop是面向批处理的系统。
  • 由于MapReduce, Hive查询有很高的延迟。
  • Hive不提供它接近OLAP的特性。
  • 最适合数据仓库应用。
  • 通过MapReduce执行查询。
  • 查询语言可以与自定义标量函数(UDF)、聚合(UDAF)和表函数(UDTF)一起使用。
  • Hive还提供索引加速,索引类型包括压缩和位图索引0.10,更多的索引类型计划。
  • Hive支持的存储类型有RCfile、HBase、ORC和纯文本。
  • 类似sql的查询(Hive QL),它被隐式地转换成MapReduce或Tez,或Spark作业。
  • 默认情况下,Hive将元数据存储在嵌入式Apache Derby数据库中。

IMPALA

  • Impala是一个运行在Hadoop上的查询引擎。它的公开测试版发布于2012年10月,并于2013年5月全面上线。
  • 它支持HDFS、Apache HBase存储和Amazon S3。
  • 读取Hadoop文件格式,包括文本、拼字、Avro、RCFile、LZO和Sequence文件。
  • 支持Hadoop安全性(Kerberos身份验证)。
  • 使用来自Apache Hive的元数据、ODBC驱动程序和SQL语法。
  • 它支持多个压缩编解码器:
  • (a) Snappy(建议可有效平衡压缩比及减压速度);
  • (b) Gzip(建议在达到最高压缩等级时使用),
  • (c) Deflate(不支持文本文件),Bzip2, LZO(只支持文本文件);
  • 它允许您查询嵌套结构,包括映射、结构和数组。
  • 它允许多用户并发查询,也允许基于优先级和查询队列的允许控制。

Hive 和 Impala 的比较(信息图)

下面是Hive和Impala的最受关注的20个对比

Hive 和 Impala的比较

 

关键的区别:Hive vs Impala

  • Hive是由Facebook的Jeff团队开发的,而Impala是由Apache软件基金会开发的。
  • Hive支持优化的行柱状(ORC)格式的文件格式与Zlib压缩,但Impala支持拼花格式与snappy压缩。
  • Hive是用Java写的,而Impala是用c++写的。
  • Hive中的查询处理速度很慢,但是Impala比Hive快6-69倍。Hive的潜伏期高,而Impala的潜伏期低。
  • Hive支持RC文件和ORC存储,而Impala存储支持Hadoop和Apache HBase。
  • Hive在编译时生成查询表达式,但是在Impala中,“大循环”的代码生成是在运行时进行的。
  • Hive不支持并行处理,但是Impala支持并行处理。
  • Hive支持MapReduce,但是Impala不支持MapReduce。
  • 在Hive中,没有安全特性,但是Impala支持Kerberos身份验证。
  • 在任何项目的升级中,兼容性和速度都很重要,Hive是一个理想的选择,但是对于一个新项目来说,Impala是一个理想的选择。
  • Hive是容错的,但是Impala不支持容错。
  • Hive支持复杂类型,而Impala不支持复杂类型。
  • Hive是基于批处理的Hadoop MapReduce,而Impala是MPP数据库。
  • Hive不支持交互计算,但是Impala支持交互计算。
  • Hive查询有一个“冷启动”的问题,但在Impala守护进程是启动时本身。
  • Hive资源管理器是纱线(另一个资源协商者),但在Impala资源管理器是本地*纱线。
  • Hive发行版都是Hadoop发行版,Hortonworks (Tez, LLAP),而Impala发行版是Cloudera MapR (*Amazon EMR)。
  • Hive观众是数据工程师,而Impala观众是数据分析师/数据科学家。
  • Hive的吞吐量高,而Impala的吞吐量低。

结论

在这篇文章中,我们展示了两种技术,即Hive和Impala,以及它们之间的基本区别。实际上,我们可以说Hive和Impala并不是竞争对手,它们都属于同一个基础,即执行查询的MapReduce,两者的使用可能会产生差异。根据我们的需要,我们可以一起使用或根据兼容性,需要,性能最好。Hive查询语言是Hive QL,这是一种非常通用的语言,而Impala是内存密集型的,不能很好地处理沉重的数据操作,例如连接查询。如果在您的项目中,工作与批量处理大量数据有关,那么Hive在这种情况下会更好,如果您的工作与实时处理数据的特别查询有关,那么Impala在这种情况下会更好。

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值