linux下用hadoop streaming 跑php总是jobs fail!

用php写了简单map reduce程序,使用cat test.txt | php mapper.php | php reducer.php 测试过脚本没有问题,然而使用hadoop时就总是jobs fail。

因此得出结论是在上传脚本到hadoop服务器上执行时的命令输入错误。以下总结两个易错点:

1. –map ‘php mapper.php’不应该加php,加了之后容易fail

2. –file ‘mapper.php’ 应该使用-file参数将map和reduce的文件上传到hadoop服务器上,如果不上传容易fail。

用php写了简单map reduce程序,使用cat test.txt | php mapper.php | php reducer.php 测试过脚本没有问题,然而使用hadoop时就总是jobs fail。

因此得出结论是在上传脚本到hadoop服务器上执行时的命令输入错误。以下总结两个易错点:

1. –map ‘php mapper.php’不应该加php,加了之后容易fail

2. –file ‘mapper.php’ 应该使用-file参数将map和reduce的文件上传到hadoop服务器上,如果不上传容易fail。

 1 $hadoop jar  /绝对路径/hadoop-streaming.jar \
 2                                 -D mapred.job.priority="NORMAL" \
 3                                 -D mapred.job.name="test" \
 4                                 -D mapred.reduce.tasks=1 \
 5                                 -D mapred.linerecordreader.maxlength=10485760 \
 6                                 -mapper "/绝对路径/mapper.php" \
 7                                 -reducer "/绝对路径/reducer.php" \
 8                                 -input $input \
 9                                 -output $output \
10                                 -file "/绝对路径/mapper.php" \
11                                 -file "/绝对路径/reducer.php"
posted @ 2016-07-02 20:26  薇清浅  阅读(314)  评论(0编辑  收藏  举报