1

map / reduceを使用して同じディレクトリ内にあるいくつかの小さなファイルをマージします。ストリーミングの使用は非常に簡単だと誰かが言っているのを見ましたが、現在はJAVA map/reduceしか使用できません。今の私の解決策は、ファイルを1レコードずつ読み取り、同じ出力ファイルに書き込むことですが、非効率的だと思います。ファイル全体のコンテンツをマッパーの値として使用して、I / O効率を向上させることはできますか?お返事をありがとうございます!

4

1 に答える 1

3

これを行う「非効率的な」方法は、ファイルをキャットして書き戻すことです。

hadoop fs -cat /path/to/files/*.txt | hadoop fs -put - /output/path/blobbed.txt

これは、さらに大きなデータセットでも問題なく機能することがわかります。

于 2012-05-14T12:42:40.683 に答える