問題タブ [reducers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hadoop - Hadoop の異なるレデューサーに同じキーが入る
私は非常に奇妙なことを経験しています。異なるレデューサーで同じキーを取得しています。キーと値を印刷して収集しました。私のレデューサーコードは次のようになります。
コンソールの出力は
キー 1234529857009 が 2 回繰り返されますが、これは異常です。なぜこれが起こっているのかについてのアイデア。
ありがとう
hadoop - Oozie ワークフローにある MapReduce ジョブのリデューサー数の設定
5 ノードのクラスターがあり、そのうちの 3 つのノードには DataNode と TaskTracker が含まれています。
Sqoop 経由で Oracle から約 1000 万行をインポートし、Oozie ワークフローで MapReduce 経由で処理しました。
MapReduce ジョブには約 30 分かかり、使用するレデューサーは 1 つだけです。
編集 - Oozie とは別に、MapReduce コードを単独で実行すると、job.setNumReduceTasks(4)4 つのレデューサーが正しく確立されます。
レデューサーの数を手動で 4 に設定するために次の方法を試しましたが、成功しませんでした。
Oozie で、map reduce ノードのタグに次のプロパティを設定します。
MapReduce Java コードの Main メソッド内:
私も試しました:
私のマップ関数は次のようになります。
IDには80,000の異なる値があると思います。
私の Reduce 関数は次のようになります。
Mapper で発行されたカスタム オブジェクトは WritableComparable を実装していますが、Reducer で発行された他のカスタム オブジェクトは WritableComparable を実装していません。
以下は、システム カウンター、ジョブ カウンター、および map-reduce フレームワークに関するログで、reduce タスクが 1 つだけ起動されたことを示しています。
編集: MapReduce を変更して、カスタム パーティショナー、並べ替えコンパレーター、およびグループ化コンパレーターを導入しました。何らかの理由で、コードは (Oozie を介してスケジュールされた場合) 2 つのレデューサーを起動するようになりましたが、4 つではありません。
mapred.tasktracker.map.tasks.maximum各 TaskTracker (および JobTracker) でプロパティを 20に設定し、それらを再起動しましたが、結果はありませんでした。
python - Map reduce Pythonでファイルごとに日付ごとにカウントする
私は私に次のような言葉を与えるマッパーを持っています,
ここで、最初の値は単語であり、その後に 3 列目に記載されているその日のその単語の出現が続きます。
キーをリンゴとして選択し、その合計数を取得できるリデューサーを作成しました。
したがって、出力は次のようになります
しかし、次のように出力する必要があります。
マッパーをどのように変更すればよいですか?
この Map reduce ジョブを Amazon EMR Hadoop Streaming で実行しています。
編集:以下のコードは完全に機能しますが、出力は次のようになります:
何か案が ?
java - マップ タスクの数を設定する
Map Reduce ジョブを構成しているときに、メソッドを使用して削減タスクの数を設定できることを知っていjob.setNumReduceTasks(2);ます。
マップ タスクの数を設定できますか?
これを行う方法はありません。
そのような機能がない場合、このフレームワークが複数の reduce タスクを持つことができるのに、複数の map タスクを持たない理由を誰かが知っていますか?
hadoop - Hadoop でのレデューサーの理想的な数は?
レデューサーの理想的な数を計算するために Hadoop wiki で指定されているように、0.95 または 1.75 * (ノード * mapred.tasktracker.tasks.maximum) です。
しかし、いつ 0.95 を選択し、いつ 1.75 を選択するのでしょうか? この乗数を決定する際に考慮された要因は何ですか?
clojure - clojure Reducer ライブラリのパフォーマンスのチューニング
レデューサー ライブラリを使用したマッピング/縮小は、通常のマップ/縮小よりもパフォーマンスが悪いのはなぜですか?
無期限に時間がかかるので、後の2人を2人で殺しました。ここで何が問題なのですか?
編集: 他の言語にも同様の問題があるようです。Scala は 100 万で壊れているようです。Scala 並列コレクションが OutOfMemoryError を引き起こすことがあるのはなぜですか? . Clojure Reducer は通常よりも 100 万倍高速です。
java - Hadoop MapReduce で 0 の出力レコードを取得する
マッパーとリデューサーが次のような Hadoop に次のコードがあります。
ドライバーの方法は次のとおりです。
レデューサーから出力を発行したにもかかわらず、map output records = 10 and reduce output records = 0 というメッセージが表示されますか? レデューサーからのこの出力はどこに消えますか?
ありがとう。
hadoop - Hadoop MapReduce: レデューサーの数の明確化
MapReduce フレームワークでは、マッパーによって生成されたキーごとに 1 つのレデューサーが使用されます。
したがって、Hadoop MapReduce で Reducer の数を指定することは、プログラムに依存するため意味がないと考えるでしょう。ただし、Hadoop では、使用するレデューサーの数を指定できます (-D mapred.reduce.tasks=レデューサーの数)。
これは何を意味するのでしょうか?レデューサー数のパラメータ値は、実際に使用されるレデューサーの数ではなく、レデューサーに割り当てられるマシン リソースの数を指定していますか?