私は Java MapReduce プログラムに取り組んでおり、ソケットまたはその他の方法を使用してレデューサー間でデータを共有できるかどうか疑問に思っていました。ソケット経由の場合、特定のキーのリデューサーを操作しているマシンの IP アドレスとポート番号を取得する方法は?
前もって感謝します :)
独自のカスタム ソケットを介して通信できます。特定のキーのレデューサーを実行している特定のホストを見つけるには、JobClient API を使用して、実行中のジョブ レデューサー リストをジョブ トラッカーにクエリできます。
レデューサー ホストを見つけるには、ジョブ パーティショナー (ほとんどの場合ハッシュ) を介してキーを実行し、レデューサー タスク番号 (0 から num reducers-1) を特定してから、レデューサー タスクが実行されているマシンを見つけます (JOb トラッカーから取得)。 JobClient API 経由)。
ただし、考慮すべき点がいくつかあります。