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"