【发布时间】:2013-07-02 09:28:43
【问题描述】:
我发现 Pig 和 Hive 之间存在一些(显着的)性能差异(在实时运行时间和 CPU 时间方面),并且正在寻找解决这些差异的方法。我使用了这两种语言的解释功能(即 Hive: EXPLAIN 关键字,Pig: pig -e 'explain -script explain.pig')来对比和比较生成的语法树、逻辑、物理和 map-reduce 计划。然而,两者似乎都做同样的事情。然而,作业跟踪器显示启动的 map 和 reduce 任务的数量存在差异(因此我确保两者使用相同数量的 map 和 reduce 任务并且性能差异仍然存在)。因此,我的问题是:我可以通过哪些其他方式分析正在发生的事情(可能在较低级别/字节码级别)?
编辑:我正在通过 TPC 运行 TPC-H 基准测试(可用 https://issues.apache.org/jira/browse/PIG-2397 和 https://issues.apache.org/jira/browse/HIVE-600 )。然而,更简单的脚本也显示出相当大的性能差异。例如:
SELECT (dataset.age * dataset.gpa + 3) AS F1,
(dataset.age/dataset.gpa - 1.5) AS F2
FROM dataset
WHERE dataset.gpa > 0;
我仍然需要全面评估 TPC-H 基准(稍后会更新),但是更简单的脚本的结果在本文档中有详细说明:https://www.dropbox.com/s/16u3kx852nu6waw/output.pdf
【问题讨论】:
-
你能展示你用来测试的脚本和SQL吗?
-
Hive中表数据集中的分区设置如何?
-
对不起,你是什么意思?我不太明白(我对 Hadoop 很陌生)/Hive
-
您能否发布您所看到的性能差异以及您正在处理的数据量的指标?
标签: hadoop hive apache-pig hadoop-plugins