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

标签 hadoop cron apache-pig bigdata

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

pig 脚本是,

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 $0.$0,$0.$1,$0.$2,$1; 
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

关于hadoop - crontab 计划的 Pig 脚本没有给出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298384/

相关文章:

Java InvocationTargetException 和 NoSuchMethodError 用于 hbase 阴影客户端(或公地)

azure - Spark 读/写 Azure blob 存储 - IOException : No FileSystem for scheme: wasbs

docker - 从 Dockerfile 定义一个 crontab,利用主机的 crontab 每小时运行一个容器化的 Go 程序

python - Casper Python 脚本失败,错误代码为 `/usr/bin/python`,但不是 `python`

sql-server - sqoop导入sql server仅找到dbo表

mysql - 使用Oracle Loader将HBase数据导入Oracle表

linux - sun solaris 全新安装上的 crontab -e 问题

java - 无法从 Pig 解析 Java UDF 中的方法

hadoop - 如何将数据分类到 Pig 中的 Zebra 表中?

hadoop - 在 Amazon EMR 上运行 Pig 字数统计脚本时出现错误