为什么我的PIG脚本失败了?

时间:2014-03-13 18:35:06

标签: hadoop apache-pig

我正在运行一个PIG脚本,我加入了两个数据集。我单独验证了我正在加入的两个数据集具有预期的模式,当我将2个数据集转储到输出时,我可以看到数据集。

我遇到的一个奇怪的问题是,我的PIG工作在10次中失败9次,但偶尔会成功。我得到的唯一错误消息是“内部错误创建作业配置”。我尝试执行JOIN时收到此错误。不幸的是,我没有CLI访问群集,我无法得到详细的错误消息。 (作业通过REST API提交)。 PIG版本为0.8。

2个数据集相当小,可以保存在内存中。所以我正在使用复制选项。我也尝试过没有复制选项。它又失败了。

关于什么事情发生的任何想法,我该如何解决这个问题?

SET mapred.map.tasks.speculative.execution false;

X = LOAD 'data1' using ....; -- using custom loader
P = LOAD 'data2' using ....; -- using custom loader

-- dataset1
Y = FILTER X BY type MATCHES 'Info' AND name MATCHES 'someregex';
Z = GROUP Y BY name;
A = FOREACH Z GENERATE group, $1.data;
B = FOREACH A GENERATE $0, FLATTEN(udf1($1));
C = GROUP B ALL;
D = FOREACH C GENERATE FLATTEN(udf2($1)) as (metric1:chararray, count:double, avg: double);

--dataset2
Q = FILTER P BY type MATCHES 'Info' AND name MATCHES 'someother_regex';
R = FOREACH Q GENERATE REPLACE(name,'Percent','') , udf3(records);
S = GROUP R BY $0;
T = FOREACH S GENERATE $0, FLATTEN(udf4(R.$1)) as (q1: double, q2: double, q3: double, q4: double);
-- Each tuple in T is like this: (metric2:chararray, q1: double, q2: double, q3: double, q4: double)

----join the two dataset
I = JOIN D BY $0, T BY $0 USING 'replicated';
STORE I into '$output' using PigStorage(',');

0 个答案:

没有答案