MapReduce の簡単な紹介とワークフロー

MR プログラミング モデルの実行手順:

  1. マップ処理用の入力データを準備する

  2.マッパー処理

  3、シャッフル

  4. 処理を減らす

  5. 結果出力

 (入力)<k1,v1> -> マップ -><k2,v2> -> 結合 -> <k2,v2> -> 削減 -> <k3,v3>(出力)

 

 

 

処理の流れ:

  

プロセス:

  1.InputFormat -> FileInputFormat -> TextInputFormat からテキスト情報を入力し、getSplits メソッドを通じて Split 配列を取得し、getRecordReader メソッドを使用して Split を処理し、読み取られた各行を処理のためにマップに渡します。

  2. 各ノード上のすべてのマップはノード上のパーティショナに渡されて処理 (シャッフル処理) され、キーに応じてマップを他のノードに配置するか、このノードで処理を続行するかが決定されます。

  3. 仕分け

  4. 結果はreduceによって処理されます

  5. 処理が完了すると、OutputFormat ->FileOutputFormat ->TextOutputFormat がローカルまたは Hadoop に書き込まれます。

 

Split: MR で処理されるデータ ブロック。MR の最小の計算単位。デフォルトは HDFS のブロック (HDFS の最小の記憶単位、デフォルトは 128M) と 1 対 1 対応します。手動で設定することもできます (修正)推奨されません)

InputFormat: 入力データを分割する(Split) InputSplit[] getSplits(JobConf var1, int var2)

  TextInputFormat: テキスト形式のデータを処理するために使用されます

出力形式: 出力

 

 

上の図のイラスト:

  一般的には1つのSplitが1つのBlockに相当しますが、上の写真は設定後です。

  ファイルは 2n 個の Split に相当する n 個の Block に分割されます。InputFormat で処理された後、各 Split は Mapper によって処理されます。シャッフルされたグループ化とソートの後、複数の Reducer が生成され、各 Reducer がドキュメントを生成します。

 

 

 

MapReduce 1.x アーキテクチャ: 1 つの JobTracker + 複数の taskTracker

    JobTracker: リソース管理とジョブのスケジュールを担当します。

    TrakTracker: ノードの健全性、リソース、およびジョブのステータスを JobTracker に定期的に報告し、タスクの開始/終了などの JT コマンドを受け取ります。

 

MapReduce 2.x:

  

 

 
 
 
 
 
 
 

おすすめ

転載: blog.csdn.net/asd54090/article/details/80920592