如何衡量猪的生产性能

How to measure performance in pig

我遇到了两个脚本,它们在计算 pig 中值的百分比方面具有相同的作用。

脚本 1

total = FOREACH (GROUP A ALL) GENERATE COUNT(A);
rows = FOREACH (GROUP A by [=10=]) GENERATE group as colname, COUNT(A) as cnt;
fractions = FOREACH rows GENERATE colname, cnt/(double)total.[=10=];

Script2

test = LOAD 'test.txt' USING PigStorage(',') AS (one:chararray,two:int);
B = GROUP test by [=11=];
C = FOREACH B GENERATE group, COUNT(test.[=11=]);
D = GROUP test ALL;
E = FOREACH D GENERATE group,COUNT(test.[=11=]);
F = CROSS C,E;
G = FOREACH F GENERATE [=11=],(double)(*100/);

从一开始 Script1Script2.

更有效

我想知道Java中是否有像VisualVM、JProfiler这样的工具来衡量pig脚本的性能。

运行 脚本所花费的时间是一种衡量方法,但是是否有为此构建的工具?

  • 你写了猪脚本。
  • 根据脚本 Pig 在优化的 Map Reduce 中翻译它。

使用 Explain 命令找出两个脚本的 MR 计划。 根据一些通用规则比较计划(可能会有变化)

  1. 生成较少数量的 Reducer 的脚本会更快。
  2. 生成较少 MR 作业的脚本会更快。
  3. 在给定的 MR 中,脚本调用较少的 UDF 会更快。