かなり単純なhadoopの質問があり、例を挙げて説明します
文字列のリストと大きなファイルがあり、各マッパーにファイルの一部と文字列の 1 つを grep のようなプログラムで処理させたいとします。
どうやってそれをするのですか?マッパーの数は、生成されたinputSplitsの結果であるという印象を受けています。後続のジョブを文字列ごとに 1 つずつ実行することもできますが、ちょっと…面倒ですよね?
編集:私は実際に grep マップの縮小版を作成しようとしているわけではありません。マッパーへの2つの異なる入力を持つ例として使用しました。A と B をリストしていて、リスト A の 1 つの要素とリスト B の 1 つの要素をマッパーに処理させたいとします。
この問題でジョブの連鎖が必要になるようなデータ依存関係が発生していないことを考えると、すべてのマッパーでリスト A のすべてを何らかの方法で共有し、リスト B の 1 つの要素を各マッパーに入力する唯一のオプションはありますか?
私がやろうとしているのは、データのプレフィックス付きのルックアップ構造を構築することです。だから私は巨大なテキストと文字列のセットを持っています. このプロセスには強力なメモリ ボトルネックがあるため、マッパーごとに 1 チャンクのテキスト/1 文字列が必要でした。