美文网首页大数据
MR-YARN-HDFS 全流程总结

MR-YARN-HDFS 全流程总结

作者: Eqo | 来源:发表于2022-06-18 20:47 被阅读0次
image.png
  1. 客户端提交MR程序,请求yarn的主角色 resource manage分配资源,运行App master

  2. RM收到请求后,返回一个配置文件存储路径,任务id

  3. 客户端将job运行资源:切片信息,配置信息,jar包上传到这个路径

  4. 资源上传完成后,向rm 申请运行程序

  5. RM根据集群资源使用情况,node manger的空闲状态,在一台NM上预留容器资源

  6. 这台nm的容器启动APPmaster,启动后的AM会跟客户端和RM注册监听,保持通信

  7. AM根据切片信息确定task任务的个数,向RM申请对应task个数的容器资源

  8. RM收到申请后,并不会立即分配资源,而是将请求放到调度队列当中,根据调度策略进行资源分配,当调度到该申请后才会分配资源

  9. 当调度到自己的时候,在nm上分配一个容器资源

  10. AM到这个分配的容器中,启动task任务(mr程序)

    map task 读取hdfs上的数据

  11. map task 访问HDFS的 name node 请求读取block上的数据

  12. namd node 收到申请后,会返回对应的 data node中block块的元数据信息(一个block就是一个map task任务)

  13. 每个map task 通过textinputformat 按行读取block中的信息进行处理,返回的是(kv对)

  14. 将这些kv对通过逻辑代码 处理出新的kv对,经过partition分区(默认只有一个)输出到缓冲区

  15. 缓冲区的信息达到百分之八十就会产生一次溢出,溢出的信息经过快速排序存储到磁盘上的文件中

  16. 当所有数据处理完成后,磁盘上的文件数据经过归并排序 合并(megar)到一个最终文件当中finalresult

  17. reduce task 拉取每个map task处理完的 最终文件 到内存当中,内存满了存磁盘

  18. 然后把这写最终文件按照key通过归并排序进行合并成一个文件

  19. 对文件内的数据按照key 进行分组,相同key的分为一组

  20. reduce task 的业务代码按照组 进行读取处理数据,处理完成的数据又是一个新的kv对

    将这些数据写入到HDFS上

  21. reduce task 请求Name Node写入数据到HDFS上

  22. NN收到请求后,经过校检(是否允许上传,或者这个数据本来就有) 返回统一上传的响应

  23. reduce task收到响应后 请求上传第一个block

  24. NN收到请求后 根据集群资源使用情况返回对应副本数的data node 的路径信息(默认三副本dn1,2,3)

  25. reduce task收到响应后 先建立 dn1 dn2 dn3 的管道 在客户端进行一个数据缓存,当缓存到64kb的时候以数据包的形式通过管道传输给dn1每个packet都会返回一个ack校检

  26. dn1接收数据并保存,然后复制给dn2,dn2接收保存复制给dn3,dn3接收保存

  27. map task 和reducetask运行结束后 AM向RM申请回收资源,最后AM注销自己,释放资源

相关文章

网友评论

    本文标题:MR-YARN-HDFS 全流程总结

    本文链接:https://www.haomeiwen.com/subject/mynkvrtx.html