0

Hadoop プログラムを実行しており、入力ファイルinput.txtとして次のものがあります。

1
2

mapper.py :

import sys
for line in sys.stdin:
    print line,
print "Test"

reducer.py :

import sys
for line in sys.stdin:
    print line,

Hadoop なしで実行すると: $ cat ./input.txt | ./マッパー.py | ./reducer.py、出力は期待どおりです。

1
2
Test

ただし、ストリーミング API を介して Hadoop を介して実行すると (ここで説明されているように)、出力の後半部分がやや「2 倍」に見えます。

1
2
Test    
Test

さらに、Hadoop を介してプログラムを実行すると、これが原因で失敗する可能性が 1/4 のようです。

エラー: 失敗したマップ タスクの数が許可された制限を超えました。失敗数: 1。

私はこれをしばらく見てきましたが、何が得られていないのかわかりません。誰かがこれらの問題を助けることができれば、私はそれを大いに感謝します! ありがとう。

編集: input.txtの場合:

1
2
3
4
5
6
7
8
9
10

出力は次のとおりです。

1   
10  
2   
3   
4   
5   
6   
7   
8   
9   
Test    
Test
4

1 に答える 1

0

同じ出力が得られます。レデューサーの場所をmapper.pyのみに指定していると思います。reducer.py への正しいパスを指定していることを確認してください

于 2013-09-27T20:43:27.283 に答える