30 以上のマッパーがあり、各マッパーはメモリ内マップである共通のルックアップ データを使用しています。各マッパーでは、セットアップ関数でこのルックアップ データをロードする必要があります。Hbase テーブルやいくつかの rdbms データベースでクエリと計算を行うことにより、このルックアップ データを計算します。各マッパーから同じことを行っているため、上記の共通タスクは各マッパーで 30 回実行されます。
とにかく、mapReduceジョブを送信する前にそのルックアップデータを計算してどこかに設定できるので、mappesから直接行ってその値を(メモリ構造で)取得できますか? 構成などのどこかに保存します...ルックアップの生成は重いタスクであり、これには多くの時間がかかります。
それがルックアップ ファイルだった場合、分散キャッシュを使用していましたが、その動的計算はファイルに保存されませんでした。
この一般的な問題の解決策を提案してください。