gpt4 book ai didi

python - hadoop-streaming:当 mapred.reduce.tasks=1 时,reducer 似乎没有运行

转载 作者:行者123 更新时间:2023-12-02 20:12:45 24 4
gpt4 key购买 nike

这个问题不太可能帮助任何 future 的访客;它只与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the help center .




9年前关闭。




我正在运行一个基本的 Map Reduce程序通过 hadoop-streamingMap好像

import sys

index = int(sys.argv[1])
max = 0
for line in sys.stdin:
fields = line.strip().split(",")
if fields[index].isdigit():
val = int(fields[index])
if val > max:
max = val
else:
print max

我运行它
hadoop jar /usr/local/Cellar/hadoop/1.0.3/libexec/contrib/streaming/hadoop-streaming-1.0.3.jar -D mapred.reduce.tasks=1 -input input -output output -mapper '/Users/hhimanshu/code/p/java/hadoop-programs/hadoop-programs/src/main/python_scripts/AttributeMax.py 8' -file /Users/me/code/p/java/hadoop-programs/hadoop-programs/src/main/python_scripts/AttributeMax.py

我在 Hadoop in Action 中阅读, mapred.reduce.tasks=1

As we haven’t specified any particular reducer, it will use the default IdentityReducer. As its name implies, IdentityReducer passes its input straight to output.



当我看到我的控制台时,我看到了
12/07/30 16:01:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
12/07/30 16:01:33 WARN snappy.LoadSnappy: Snappy native library not loaded
12/07/30 16:01:33 INFO mapred.FileInputFormat: Total input paths to process : 1
12/07/30 16:01:34 INFO streaming.StreamJob: getLocalDirs(): [/Users/me/app/hadoop/tmp/mapred/local]
12/07/30 16:01:34 INFO streaming.StreamJob: Running job: job_201207291003_0037
12/07/30 16:01:34 INFO streaming.StreamJob: To kill this job, run:
12/07/30 16:01:34 INFO streaming.StreamJob: /usr/local/Cellar/hadoop/1.0.3/libexec/bin/../bin/hadoop job -Dmapred.job.tracker=localhost:9001 -kill job_201207291003_0037
12/07/30 16:01:34 INFO streaming.StreamJob: Tracking URL: http://localhost:50030/jobdetails.jsp?jobid=job_201207291003_0037
12/07/30 16:01:35 INFO streaming.StreamJob: map 0% reduce 0%
12/07/30 16:01:51 INFO streaming.StreamJob: map 100% reduce 0%

它没有任何进展,只是继续运行。它似乎不起作用,我该如何解决这个问题?

更新
  • D mapred.reduce.tasks=0我看到两个文件 part-00000part-00001两个文件都有一行 0
  • D mapred.reduce.tasks=1-reduce 'cat'行为与 reduce 没有做任何事情一样
  • 当我运行 cat file | python AttibuteMax.py 8我得到 868

  • 这意味着 D mapred.reduce.tasks=0cat file | python AttributeMax.py 8也没有产生相同的输出(但他们应该,对吧?)

    当输入数据也相同时,会导致行为差异的原因是什么?

    更新 1
  • D mapred.reduce.tasks=0我看到 4 个文件 part-00000 , part-00001 , part-00002part-00002分别为单行 268、706、348、868
  • 当我运行 $ cat ~/Downloads/hadoop/input/apat63_99.txt | python ../../../src/main/python_scripts/AttributeMax.py 8 | cat
    我确实看到所需的输出为 868
  • 最佳答案

    设置 mapred.reduce.tasks=0 时是否得到预期的输出? ?如果指定 -reducer 'cat' 会怎样?与 mapred.reduce.tasks=1 ?流式传输的好处之一是您可以使用管道从命令行非常有效地测试它:

    cat input | python mapper.py | sort | python reducer.py

    但您的应用似乎没有产生任何输出。

    关于python - hadoop-streaming:当 mapred.reduce.tasks=1 时,reducer 似乎没有运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11730984/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com