実行中の特定のジョブは、大きなHDFSファイルを処理する前に、DBからいくつかのメタデータを収集する必要がありますこのメタデータはファイル内のデータに追加され、後のmap/combine/reduceステージに渡されます。Hadoop MapReduceとデータベースクエリを組み合わせる
私はこのクエリを置く場所が正しいかどうか疑問に思っていました。マッパーが始まるときにメタデータを利用できるようにする必要がありますが、マッパーが同じクエリーを実行するので、そこに配置することは重複しているようです。どのようにして(もしあれば)このクエリを一度実行し、その結果をすべてのマッパーで共有できますか?タスクを実行するすべてのノード間でデータを共有する共通の方法はありますか(HDFSに書き込む以外)ありがとう。
また、メタデータが大きすぎて設定に保存できない場合は、DistributedCacheを使用して調べる必要があります。ドライバのDBからメタデータを取得し、ファイルに保存してからファイルをDistributedCacheに追加します。メモリにロードして必要に応じて追加するためのファイルが各マッパーで使用可能になります –
両方の回答が素晴らしいです! – sa125