Hadoop_MapReduce操作プロセスMRジョブ操作の5段階

 

参考記事: 

https://www.cnblogs.com/cjsblog/p/8168642.html

https://www.jianshu.com/p/461f86936972

https://blog.csdn.net/wyqwilliam/article/details/84669579

mapreduce操作の5つの段階


Mapreduceは、実行プロセスの5つのステップに大まかに要約されています

1. [input阶段]获取输入数据进行分片作为map的输入
2. [map阶段]过程对某种输入格式的一条记录解析成一条或多条记录
3. [shffle阶段]对中间数据的控制,作为reduce的输入
4. [reduce阶段]对相同key的数据进行合并
5. [output阶段]按照格式输出到指定目录

 

 

実行プロセス図

 

 

入力ステージ

input阶段主要是从节点上反序列化数据,读取后切片,供map阶段使用
序列化格式和inputformat格式可以自定义设置
只有支持分片的压缩格式可以分片
记录格式:如serse 用正则表达式来转换文本hive

具体的な手順は次のとおりです。


1.データノードのデータにアクセスしデータとスライスデシリアライズし、各スライスにマップタスクを割り当てます
2.これらのタスクを同時に実行し
ます3. recordReaderを介してスライスの各レコードを読み取り、レコードフォーマットに従って読み取りますシフト値はマップのキーとして使用され、レコード行は値として使用されます。値はマップメソッドのパラメーターとして使用されます。
 

 

マップステージ

通过对输入记录的处理,转换成一个或多个中间记录

 

 

シャッフルステージ

需要注意:
1. shuffle阶段会对中间值进行优化,并且将分区的数据分发给各个reduce处理

map任务的输出默认是放在本地磁盘的临时缓冲目录中的

分区,排序,combiner过程可自定义

由于受限于集群可用带宽,通常会对中间数据做压缩,combiner处理,减少网络带宽消耗

分区的作用就是决定根据map 输出的key值由哪个reduce处理

mapper实现类读取配置文件属性,可以在配置中指定压缩的格式

每一个分组的后台线程对输出结果的key进行排序,在排序的过程中,有combine函数则会进行调用

1.最初にマップデータがメモリバッファーに出力され、デフォルトの80%のしきい値に達した後、データはマップタスクと同様にローカルに書き込まれ、書き込みごとに小さなファイルが生成されます。
2.ローカルへの書き込みプロセスでは、パーティション化、並べ替え、コンバイナー(オプション)のプロセスが実行されます。3
。最後のファイルがローカルディスクに書き込まれると、領域と領域のファイルがマージされ、並べ替えられ、圧縮されます( (オプション)
4.パーティションでソートされた大きなファイルは、異なるパーティションに応じて対応するリデュースにコピーされます。5。リデュース
エンドは、httpネットワークを介してマップエンドからデータをコピーします
6.入力データはソートおよびマージされます。 2つのソート後に値イテレーターを返します
。7 削減する入力として、同じキーの値を値のセットとしてグループ化します
 

 

ステージを減らす

处理<key,list<value>>对,对每个key产生一个结果

 

出力段

对输出数据通常会做压缩,节省磁盘空间

将reduce结果按照输出的格式写入文件中

出力ファイルの形式に従って、各キーと値のペアの結果を1行ずつ出力します。デフォルトの中央の区切り文字は '\ t'です。キーと値のペアオブジェクトのtoString()メソッドはデフォルトで呼び出されます
 

元の記事を519件公開 1146 件を賞賛 283万回の閲覧

おすすめ

転載: blog.csdn.net/u010003835/article/details/105334025