私は約170GBのデータを持っています。私はhadoop 2.7.3を使って分析しなければなりません。 14人の労働者がいる。各ドキュメントの一意のMIMEタイプの合計を見つける必要があります。 text/htmlタイプのドキュメントの総数。私がmapreduceジョブ(Pythonで書かれています)を実行すると、Hadoopは、私が期待している単一のファイルではなく、多くの出力ファイルを返します。これは、あるデータを一度に処理して出力する多くの作業者によるものだと思います。私は単一の出力を取得したい。問題はどこだ。どのように私は、(すべての小さな出力ファイルを組み合わせることによって)単一の出力を与えるためにhadoopを制限することができます。単一の結果を得るためにhadoopマッパーの出力を結合する方法
答えて
あなたの仕事はマッパーごとに1ファイルを生成していますが、これを行うには1レデューサーを使用してレデューサーフェーズを強制する必要があります。これにより、すべてのマッパーで同じキーを発行できます。
あなたがHDFSからデータを取得するときは、Hadoopのgetmergeコマンドを使用して、エンドファイルをマージすることができます
hadoop fs -getmerge /output/reduce/ /localcatalog/mergedresult.txt
を各マッパーと減速は、別のファイルを生成し、あなたは意志マッパーと減速の数を減少させることによってしますあなたの仕事の並行性のレベルを下げる。私は、単一の出力に減速機を制限するのではなく、提供されたコマンドを使用してhdfsからマージされた結果を得ることが最善の方法だと思います。
マージすると重複が発生すると思います。各出力ファイルにキーtext/htmlが存在します。最終的な出力では、すべての合計でなければなりません。 – Shafiq
@Shafiq Reducerはキーでデータをグループ化して、減速器のジョブに順番にこれを配布するので、重複はありません。したがって、重複がなく交差しない範囲を持つことになります。 getmergeはそれらを1つのファイルにまとめます。 – Alex
@Shafiqアレックスの答えは、現在の問題のステートメントには正しいです。あなたがコメントしたことは、元の質問とは異なります。 "各文書のユニークなMIMEタイプの合計を見つけなければならない"というメッセージは明確ではありません – vefthym
処理されたドキュメントごとにマッパーを発光させます。(doc-mime-type, 1)
このようなペアはすべて縮小フェーズでカウントアップされます。基本的には、マッパーが各docのMIMEタイプごとに1を出力することを除いて、標準的な単語カウントの練習です。
設定するレデューサーの数について:レデューサーの結果をマージするアレックスの方法は、削減段階ですべてのワーカーノードを使用できるため、望ましい方法です。しかし、ジョブが1-2のノードで実行される場合、ただ1つの減速機がうまく動作するはずです。
- 1. Hibernate Criteria - 結合結果を単一のエンティティタイプに制限する方法?
- 2. MYSQL結果を取得するために結合する
- 3. 単一の結果を他の複数の結果と結合するデータブロック
- 4. 複数のマッパーの結果をHadoopのリデューサでソート
- 5. 単一行の結果を単一の列に変換する結果
- 6. 複数の単一値出力をSASで単一行に結合する方法は?
- 7. コマンドの結果と結果の数を出力する方法は?
- 8. すべてのレコードが一致する場合にのみ結合から結果を得る方法
- 9. 多目的結果のための単一の方法を行うには?
- 10. 複数のクエリの結果を1つの結果に結合する方法
- 11. "SELECT TOP 1"は実際に単一の結果を期待したときに単一の結果を得る最良の方法ですか?
- 12. 返された単一の行を取得するためにSQL Serverの結合、合計、サブクエリを結合する方法
- 13. コマンドの結果のみをファイルに出力する方法は?
- 14. JavaScript:結果を得るためにDocument.evaluateメソッドを呼び出す方法
- 15. mysqlの結果で単一文字をマッチングする方法は?
- 16. iOS/Xcode:コンソールをデバッグするための出力結果posix_spawn()
- 17. Impalaクエリの結果をクエリと一緒に出力する方法
- 18. EventListenerの結果を変数に出力する方法は?
- 19. メソッドの結果をJavaでファイルに出力する方法
- 20. ストアドプロシージャの結果データを出力データセットにマップする方法
- 21. PHP PDO:単一列の結果を取得する方法の違い
- 22. Hadoop - 削減後に出力ファイルから結果を取得しますか?
- 23. プロシージャの結果であるレコードを出力する方法は?
- 24. windbgで結果!daアドレスの一部を出力するには?
- 25. pythonでSQLiteクエリから単一の結果を取得する方法は?
- 26. C++ダイスシミュレータの結果のパーセンテージ出力を表示する方法
- 27. symfony2でDQLを使用して単一の結果を得る方法
- 28. ドキュメントの結果を得るためにソナタのユーザバンドルを設定する方法
- 29. コマンドの結果の一部のみを出力する
- 30. Hadoopレデューサーが単一のキーに複数の値を出力する方法
setnumreducetasks(1)を設定して、単一の出力を得ることができます。私は – Bhavesh
を具体的にすることはできますか?希望の出力形式はどうですか?あなたは何を得ていますか? – vefthym