0

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

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

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

谢谢

4

3 回答 3

6

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

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

但是,除非您对 Hadoop 和 map/reduce 有经验,否则您编写的 map/reduce 与 Hive 等相比,在非平凡查询上可能会更慢。人。会做

于 2013-01-16T15:02:56.850 回答
1

前段时间我在虚拟机中做了一些小测试,但我并没有真正注意到任何区别。也许 Hive 有时会慢几秒钟,但我真的不知道这是 Hives 性能还是我的 VM 由于内存不足而挂起。我认为要记住的一件事是,Hive 将始终确定完成 MapReduce 工作的最快方法。现在,当您编写小型 MapReduce 作业时,您可能能够自己找到最快的方法。但是对于大型复杂工作(使用连接等),您是否始终能够与 Hive 竞争?

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

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

于 2013-01-16T09:37:08.610 回答
0
  1. 如果您的机器上有小型数据集并希望使用 Apache Hive 进行处理,那么与使用 Hadoop MapReduce 处理相同数据集相比,在小型数据集上执行 Job 会很慢。如果您考虑小型数据集,hive 的性能会略有下降。然而,对于大型数据集,与 MapReduce 相比,Apache Hive 的性能会更好。

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

于 2016-01-30T07:53:43.317 回答