管道命令行hadoop流式处理作业

2024-05-20 01:52:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用管道输送我的hadoop流媒体作业。 例如,我运行了一个命令 hadoop jar hadoop-流媒体.jar -映射器map1.py -减速器减速器.py -输入xx -输出/输出1

但是我想使用第一步的输出作为我的mapreduce作业的第二步的输入,而不是将输出存储在hdfs中。 有没有类似linux管道的东西? 例如 hadoop jar hadoop-流媒体.jar -映射器map1.py -减速器减速器.py -输入xx| hadoop jar hadoop-流媒体.jar -映射器map2.py -异径管2.py -输出/输出


Tags: py命令hadoop管道linux作业hdfsjar
1条回答
网友
1楼 · 发布于 2024-05-20 01:52:21

我也遇到了同样的问题,最后使用bash/shell脚本运行hadoop流式处理命令。我创建了一个名为hadoop.sh版其中包含以下内容:

rm -r output | bin/hadoop jar share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar -files /hadoop-2.7.3/script/mapper.php -input /data/* -output output -mapper "php mapper.php" -jobconf mapred.reduce.tasks=1
#add a beginning/ending php to the file
ex -sc '1i|<?php' -c '$a|?>' -cx output/part-00000
#move the file from /output to /script
mv /hadoop-2.7.3/output/part-00000 /hadoop-2.7.3/script/part-00000.php

第00000部分文件将成为下一个hadoop命令的part0000.php文件。在

相关问题 更多 >