如何衡量猪的生产性能
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/);
从一开始 Script1 比 Script2.
更有效
我想知道Java中是否有像VisualVM、JProfiler这样的工具来衡量pig脚本的性能。
运行 脚本所花费的时间是一种衡量方法,但是是否有为此构建的工具?
- 你写了猪脚本。
- 根据脚本 Pig 在优化的 Map Reduce 中翻译它。
使用 Explain 命令找出两个脚本的 MR 计划。
根据一些通用规则比较计划(可能会有变化)
- 生成较少数量的 Reducer 的脚本会更快。
- 生成较少 MR 作业的脚本会更快。
- 在给定的 MR 中,脚本调用较少的 UDF 会更快。
我遇到了两个脚本,它们在计算 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/);
从一开始 Script1 比 Script2.
更有效我想知道Java中是否有像VisualVM、JProfiler这样的工具来衡量pig脚本的性能。
运行 脚本所花费的时间是一种衡量方法,但是是否有为此构建的工具?
- 你写了猪脚本。
- 根据脚本 Pig 在优化的 Map Reduce 中翻译它。
使用 Explain 命令找出两个脚本的 MR 计划。 根据一些通用规则比较计划(可能会有变化)
- 生成较少数量的 Reducer 的脚本会更快。
- 生成较少 MR 作业的脚本会更快。
- 在给定的 MR 中,脚本调用较少的 UDF 会更快。