龙空技术网

Hive 和 Impala的比较

数据轮子 584

前言:

眼前你们对“apachehadoopimpala”大约比较关注,我们都需要分析一些“apachehadoopimpala”的相关文章。那么小编也在网摘上网罗了一些关于“apachehadoopimpala””的相关文章,希望大家能喜欢,姐妹们快快来了解一下吧!

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 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在这种情况下会更好。

标签: #apachehadoopimpala #impalaapache开源