0

回避策の一部として、目的の効果を得るために順番に実行する必要がある (1 つではなく) 2 つの mapreduce ジョブを使用したいと考えました。

各ジョブの map 関数は、各キーと値のペアを処理せずに発行するだけです。各ジョブのリデュース関数は、異なる種類の処理を行うため異なります。

私は oozie に出くわしましたが、結果のジョブの入力ストリームに直接書き込むようです (そうではありませんか?) - 中間データが大きいため、これは素晴らしいことです (I/O 操作がボトルネックになります)。

Oozie (ワークフロー内の 2 つの mr ジョブ) でこれを達成するにはどうすればよいですか?

以下のリソースを確認しましたが、ワークフローとして単一のジョブを実行するだけです: https://cwiki.apache.org/confluence/display/OOZIE/Map+Reduce+Cookbook

助けていただければ幸いです。

乾杯

4

2 に答える 2

2

Hadoop のChainMapperクラスを見てください。ディスクにヒットすることなく、1 つのマッパーのマップ出力を次のマッパーの入力に直接転送できます。

于 2012-12-14T14:58:28.367 に答える
1

Oozie は、ジョブのワークフローを記述するためのシステムです。ジョブには一連の map reduce ジョブ、pig スクリプト、fs 操作などを含めることができ、データ フローのフォークと結合をサポートします。

ただし、ある MR ジョブの入力を別の MR ジョブへの入力としてストリーミングすることはできません。oozie の map-reduce アクションには、何らかのタイプの出力形式 (通常はファイル ベース) が必要なため、ジョブ 1 からの出力はジョブ 2 によって処理される前に、HDFS を介してシリアル化されます。

Oozie のドキュメントには、フォークを含む複数の MR ジョブの例があります。

http://oozie.apache.org/docs/3.2.0-incubating/WorkflowFunctionalSpec.html#Appendix_B_Workflow_Examples

于 2012-11-14T00:43:28.747 に答える