2011-06-27 3 views
2

私はHadoop MapReduceを使っています。 HDFSにデータがあり、各ファイルのデータは既にソートされています。 MapReduceにマップフェーズ後にデータを使用させないように強制できますか?私はmap.sort.classをno-opに変更しようとしましたが、動作しませんでした(つまり、予想通りデータがソートされませんでした)。誰も似たようなことをやろうとしたのですか?すでにソートされたファイルを含むHadoop MapReduce

答えて

0

私はそれがあなたが望むスタイルの結果、ソートされた結果、またはソートされていない結果に依存すると思いますか?

結果がソートされる必要がある場合は、hadoopがこの作業を行うのに適していないと思います。 2つの理由があります:

  • INPUT DATAは異なるチャンク(十分大きければ)に格納され、マルチスプリットに分割されます。各分割は1つのマップ・タスクにマップされ、マップ・タスクのすべての出力はreduceの入力として(パーティション/ソート/結合/コピー/マージのプロセス後に)収集されます。これらのステージの間でキーを順番に保つのは難しいです。
  • マップタスクのマップ処理後にソート機能が存在するだけでなく、削減タスク中にプロセスをマージすると、ソートオプションもあります。

私はこのパッチは、あなたが望むかもしれないと思う、ソートされた結果を必要としない場合:

は、マップの出力には、ソートのデータフローをサポートしていないとマージフレーズ削減:https://issues.apache.org/jira/browse/MAPREDUCE-3397

関連する問題