問題タブ [combiners]
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 - Map-Reduce コンバイナーが機能しない
このスクリプトを使用しようとしました: http://www.cs.bgu.ac.il/~dsp112/Map-Reduce_Template しかし、コンバイナーは (69 行目) で失敗します。
出力レコードの結合 11,746,934 ... 入力レコードの結合 11,746,934
テキスト フラット ファイルを分析しましたが、どのようにデバッグできますか?
configuration - Hadoop 構成 - マッパー/コンバイナーは io.sort.factor と io.sort.mb の影響を受けますか?
io.sort.factor と io.sort.mb を変更すると、マップ側で行われるローカル ソートはこれらの変数を使用しますか、それともレデューサー側で行われるソートでのみ使用されますか?
hadoop - Hadoop に 2 つのマッパーがある場合、1 つのマッパー用のコンバイナー
異なる入力を処理する 2 つのマッパー クラスがありますが、それらの出力は同じ形式になり、同じレデューサーに送られます。2 つのマッパー クラスの 1 つだけにコンバイナーを実装することは可能ですか?
mapreduce - コンバイナーとリデューサーは異なる場合がありますか?
多くの MapReduce プログラムでは、リデューサーがコンバイナーとしても使用されています。これは、これらのプログラムの特定の性質によるものであることはわかっています。しかし、私はそれらが異なることができるかどうか疑問に思っています。
hadoop - Hadoop での実行時に、タスクがレデューサーかコンバイナーかを確認するにはどうすればよいですか?
MapReduce で実行される操作が交換可能かつ結合的でない場合、コンバイナーをレデューサーと同じにすることはできません。
たとえば、平均値を計算する場合、コンバイナーはキーの値を合計し、リデューサーは合計してから、その合計をそのキーの値の総数で割ります。コンバイナのコードはわずかに変更されています。コンバイナーとリデューサーの両方に同じクラスを使用し、現在のタスクがコンバイナーかリデューサーかを判断できるコードを用意できるとしたら? レデューサーであることがわかった場合は、合計をカウントで除算します。
このようなもの:
これを行うことは可能ですか?上記のコードの平和THIS_IS_A_REDUCER
を何かに置き換えることはできますか?
タスクの試行 ID 文字列からタスクがマッパーかレデューサーかを判断できますが、コンバイナーとレデューサーの両方が同様の文字列パターンを持っているようです。
hadoop - コンバイナの入力レコード数がマップの出力数よりも多いのはなぜですか?
Combiner は Mapper の後、Reducer の前に実行され、指定されたノードの Mapper インスタンスによって発行されたすべてのデータを入力として受け取ります。次に、Reducer に出力を送信します。したがって、コンバイナ入力のレコードは、マップ出力よりも少なくする必要があります。
hadoop - マッパー内で結合し、マッパーのクリーンアップ ルーチンが実行されるのはいつですか?
私は単純なバイグラム(単語ペア)カウントを試しています。単純な「ペア」アプローチで試しましたが、今は「ストライプ」アプローチを試すように変更しましたが、マッパーのクリーンアップルーチンでは、どういうわけか私のすべてのキーは同じ単語ペアです(最後の単語ペアのように!) と数です。
たとえば、テキスト入力は次のとおりです。
私の名前はフーです。Foo は Hadoop の新機能です。
マッパーでは、ハッシュマップは次のようになります。
しかし、クリーンアップルーチンで、同じハッシュマップを印刷しようとしましたが、次のようになります
私のコードは次のようになります:
注: TextPair は、私のカスタム キー クラスです。なにか提案を?
編集1:
すべてのマップタスクが完了した後、最後に実行されるマップのクリーンアップルーチンはありますか? そして、ハッシュは一種の「グローバル」です。それまたは私のイテレータに何か問題がありますか?
編集2:
ハッシュする前に map() の各反復で新しい TextPair Key オブジェクトを作成する必要があります。私はPythonでハッシュを何度も使用しましたが、それは良いことであり、苦痛ではありません。なぜ毎回新しいオブジェクトを作成する必要があるのか わかりません。
java - コンバイナでマッパー出力が2倍になりました
マッパーは値を1回だけ出力します。しかし、私がチェックしたとき、コンバイナーは2回値を持っています。これは私には本当に奇妙です。
plsは役立ちます。
出力が送信される場所からのマップコードのモジュール:
コンバイナーの場合:
ここをチェックすると、キーに対応する値が2倍になっていることがわかります。
前もって感謝します!
java - 2つの等しいコンバインキーは同じレデューサーに到達しません
MapReduceフレームワークを使用してJavaでHadoopアプリケーションを作成しています。
入力と出力の両方にテキストキーと値のみを使用します。コンピュターを使用して、最終出力に還元する前に追加の計算ステップを実行します。
しかし、キーが同じレデューサーに移動しないという問題があります。コンバイナーで次のようなキーと値のペアを作成して追加します。
メインでは、私は次のようなジョブを作成します:
レデューサーから出力されるstdoutの出力は次のとおりです。
キーが同じであるため、これは意味がありません。したがって、Iterableに同じ値が3つある2つのレデューサーである必要があります。
あなたが私がこれの底に到達するのを手伝ってくれることを願っています:)
hadoop - Hadoop でコンバイナーを継承する (または拡張する) べきクラスはどれですか?
Hadoop では、マッパー クラスとリデューサー クラスは Mapper または Reducer インターフェースを拡張する必要があります。ただし、コンバイナ クラスが拡張するインターフェイスが見つかりませんでした。Hadoop のコンバイナー クラスのシグネチャは何ですか?