MR分布式程序详细内部工作流程

编程入门 行业动态 更新时间:2024-10-10 23:22:55

MR<a href=https://www.elefans.com/category/jswz/34/1770120.html style=分布式程序详细内部工作流程"/>

MR分布式程序详细内部工作流程

  1. mr程序分为map端和reduce端,来进行处理数据,mr程序在运行的时候最先启动的程序就是MRAppMaster,MRAppMaster是可以读到在job提交的时候的参数信息,所以它可以根据参数信息,来启动对应数量的maptask和reducetask,在maptask启动后,会读取自己对应的任务切片,以逐行读取的方式,一个K,V执行一次map()方法,K为起始偏移量,V为行内容
  2. 在map()方法执行完一次后,会将数据写入到环形缓冲区中,当环形环形缓冲区中的数据存储达到80%的时候,就会进行分区,排序,然后然后将数据溢出到磁盘当中,剩余20%空间可以继续用来接收数据,如果在20%的空间接收满数据后,仍没有完成分区,排序的工作,那么环形缓冲区就会出现阻塞,防止向缓冲区中写入数据,等到数据.
  3. 将环形缓冲区中分区排序完的数据,使用的是归并排序算法,写入到本地磁盘当中
  4. 当这个maptask读取完给自己分配的任务切片的时候,会将存在本地磁盘中的相同分区的文件加载到内存中,进行合并排序.
  5. 将内存中合并排序完的数据,存入到yarn集群中的某一台nodemanager中,这台nodemanager机器就提供外部服务,以便于reduce可以下载到文件,到这里maptask的工作就结束了
  6. reducetask会从nodemanager中,以http协议的方式拉去属于自己分区的文件
  7. 在拉取到所有的文件后,reducetask会将文件,进行合并,排序,然后通过调用GroupingComparator将数据进行分组
  8. 根据mr程序中自己写的代码逻辑,进行数据运算处理
  9. 最后将处理完的数据存入到HDFS当中,这样一个mr程序的处理流程就结束了

流程图如下:

更多推荐

MR分布式程序详细内部工作流程

本文发布于:2024-03-11 18:20:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1729595.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分布式   工作流程   程序   详细

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!