如何在Hadoop流媒体中运行Python mapreduce

2024-09-30 02:15:04 发布

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

我试图在apachehadoop中运行一个mapreduce程序,它计算给定输入文件中素数的平均和。 这是我的地图

import sys
for word in sys.stdin:
   print(word)

这是减速器

^{pr2}$

现在,当我用以下命令运行它时:

python primesMapper.py primesReducer.py -r hadoop --hadoop-streaming-jar /opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/hadoop-mapreduce/hadoop-streaming-2.6.0-cdh5.10.0.jar hdfs://bigdata1.sis.uta.fi:/user/students/input/primes1.txt --output-dir group25/primes.txt

我没有出错,但实际上什么也没发生。它只是被命令卡住了。当我手动终止它时,我可以看到它卡在Mapper文件中:

  File "primesMapper.py", line 8, in <module>
    for line in sys.stdin:

有什么帮助吗?在


Tags: 文件inpy命令txthadoopforstdin
1条回答
网友
1楼 · 发布于 2024-09-30 02:15:04

你可以试着用

hadoop jar <streaming jar_path> -file *mapper_path* -mapper "python primes_mapper.py" -file *reducer_path* -reducer "python primes_reducer.py" -input *input_path* -output *output_path*

相关问题 更多 >

    热门问题