性能比较:Hive& MapReduce的

时间:2013-01-16 09:09:40

标签: hadoop mapreduce hive

Hive为java Map Reduce作业提供了一个抽象层,因此与Java Map Reduce作业相比,它应该具有性能问题。

Do we have any benchmark to compare the performance of Hive Query & Java Map Reduce Jobs ? 

包含运行时数据的实际用例场景将是真正的帮助。

谢谢

3 个答案:

答案 0 :(得分:6)

您的前提是“与Java Map Reduce Jobs相比,它应该具有性能问题。”是错的......

Hive(以及Pig和crunch以及其他map / reduce抽象)将比完全调整的手写map / reduce慢。

然而,除非你对Hadoop和map / reduce有经验,否则你写的地图/减少在非平凡的查询上会比较慢,而Hive等。人。会做的

答案 1 :(得分:1)

我曾经在虚拟机中做了一些小测试,我真的没有注意到任何差异。也许Hive有时会慢几秒,但我无法确定这是Hives性能还是我的VM由于内存不足而挂起。我认为要记住的一件事是,Hive将始终确定执行MapReduce作业的最快方法。现在,当您编写小型MapReduce作业时,您可能能够自己找到最快的方法。但是,对于大型复杂的工作(加入等),你总是能够与Hive竞争吗?

此外,与编写HiveQL查询相比,编写多个类和方法的MapReduce作业所需的时间似乎需要很长时间。

另一方面,我觉得当我自己写作时,更容易知道发生了什么。

答案 2 :(得分:0)

  1. 如果您的计算机上有小型数据集并希望使用Apache Hive进行处理,则与使用Hadoop MapReduce处理相同数据集相比,在小型数据集上执行Job会比较慢。如果考虑小数据集,蜂巢的性能会略微降低。然而,对于大型数据集,与MapReduce相比,Apache Hive性能会更好。

  2. 在MapReduce中处理数据集时,数据集存储在HDFS中。 MapReduce没有自己的数据库,因为Hive有元存储。从Hive的Metastore,可以与Impala,Beeline,JDBC和ODBC驱动程序共享数据。