多数の小さなファイル (それぞれ平均 30 ~ 40 MB) で形成されたデータセットがあります。MapReduce で分析を実行したかったのですが、ジョブごとにマッパーがファイルを再度読み取るため、I/O パフォーマンス (オーバーヘッドなど) に大きな負荷がかかります。
マッパーを一度使用して、さまざまなレデューサーに対してさまざまな異なる出力を発行できるかどうかを知りたいですか? 調べてみると、複数のレデューサーは使用できないことがわかりましたが、可能なのはジョブチェーンだけです。ただし、これらのジョブはすべて同じデータセットを入力として使用し、異なる分析を実行するため、これらのジョブは順次ではなく並行して実行したいと考えています。要約すると、私が欲しいのは以下のようなものです:
Reducer = Analytics1 /
Mapper - Reducer = Analytics2
\ Reducer = Analytics3 ...
これは可能ですか?または、回避策の提案はありますか? アイデアを教えてください。これらの小さなファイルを何度も読み取ると、分析のオーバーヘッドとパフォーマンスが大幅に低下します。
前もって感謝します!
編集: YARN で Hadoop v2.1.0-beta を使用していることを忘れていました。