crontab 计划的 Pig 脚本没有给出结果

Pig script scheduled by crontab not giving result

我有 pig 脚本,当我从 pig(map reduce 模式)运行 时给出了正确的结果,但是当我从 crontab 调度时不按照脚本存储输出。

猪脚本是,

a1 = load '/user/training/abhijit_hdfs/id' using PigStorage('\t') as (id:int,name:chararray,desig:chararray); 
a2 = load '/user/training/abhijit_hdfs/trips' using PigStorage('\t') as (id:int,place:chararray,no_trips:int); 
j = join a1 by id,a2 by id;
g = group j by(a1::id,a1::name,a1::desig);`  
`su = foreach g generate group,SUM(j.a2::no_trips) as tripsum; 
ord = order su by tripsum desc; 
f2 = foreach ord generate [=10=].[=10=],[=10=].,[=10=].,; 
store f2 into '/user/training/abhijit_hdfs/results/trip_output' using PigStorage(' ');

crontab 是,

[training@localhost ~]$ crontab -l
40 3 * * * /home/training/Abhijit_Local/trip_crontab.pig

请指导。

您的 crontab 试图将 Pig 脚本视为可执行文件并直接 运行 它。相反,您可能需要明确地通过 pig 命令传递它,如 Batch Mode 上的 Apache Pig 文档中所述。您可能还会发现将 stdout 和 stderr 输出重定向到某处的日志文件很有帮助,以防您需要排除故障。

40 3 * * * pig /home/training/Abhijit_Local/trip_crontab.pig 2>&1 > /some/path/to/logfile

根据 PATH 环境变量设置,您可能会发现有必要指定 pig 命令的绝对路径。

40 3 * * * /full/path/pig /home/training/Abhijit_Local/trip_crontab.pig 2>&1 > /some/path/to/logfile