当前位置: 首页 > news >正文

16.hadoop系列之MapReduce之MapTask与ReduceTask及Shuffle工作机制

1.MapTask工作机制

以上内容我们之前文章或多或少介绍过,就已网络上比较流行的该图进行理解学习吧
MapTask分为五大阶段

  • Read阶段
  • Map阶段
  • Collect阶段
  • 溢写阶段
  • Merge阶段

2.ReduceTask工作机制

ReduceTask分为三大阶段

  • Copy阶段
  • Sort阶段
  • Reduce阶段

3.ReduceTask并行度决定机制

MapTask并行度由切片个数决定,切片个数由输入文件和切片规则决定,ReduceTask与MapTask的并发数决定不同,可以直接设置

 job.setNumReduceTasks(4);

4.ReduceTask注意事项

  • ReduceTask=0,表示没有Reduce阶段,输出文件数与Map阶段输出个数一致
  • ReduceTask默认值1,所以输出文件是一个
  • 如果数据分布不均匀,就有可能Reduce阶段产生数据倾斜
  • ReduceTask数量并不是任意设置,要考虑业务需求,当需要计算全局汇总结果,就只能有1个ReduceTask
  • 具体多少个ReduceTask,需要根据集群性能而定
  • 如果分区数不是1,但是ReduceTask为1,不会执行分区过程,在MapTask源码中,分区前提是先判断ReduceNum个数是否大于1,不大于1肯定不执行分区

5.Shuffle机制

Map方法之后,Reduce方法之前的数据处理过程称为Shuffle


欢迎关注公众号算法小生与我沟通交流

http://www.lryc.cn/news/14281.html

相关文章:

  • java 面试过程中遇到的几个问题记录20230220
  • 面试题:【数据库三】索引简述
  • 数据库必知必会:TiDB(12)TiDB连接管理
  • 电源大事,阻抗二字
  • ASE20N60-ASEMI的MOS管ASE20N60
  • nginx 代理01(持续更新)
  • 初阶C语言——操作符【详解】
  • 37k*16 薪,年后直接上岗,3年自动化测试历经3轮面试成功拿下阿里Offer....
  • 利用Rust与Flutter开发一款小工具
  • 零入门kubernetes网络实战-16->使用golang给docker环境下某个容器里添加一个额外的网卡
  • 音频信号处理笔记(二)
  • 钓鱼网站+bypassuac提权
  • 合并两个有序链表——递归解法
  • ADRC自抗扰控制总结
  • 3年工作之后是不是还在“点点点”,3年感悟和你分享....
  • 【自动化测试】web自动化测试验证码如何测?如何处理验证码问题?解决方案......
  • 面试浅谈之 C++ STL 篇
  • 【PTA Advanced】1144 The Missing Number(C++)
  • oracle的sqlnet.ora文件配置传输加密算法
  • RK3568存储性能测试
  • Homekit智能家居一智能灯泡
  • 轻量级 Java 权限认证框架——Sa-Token
  • 算法复习(四、五、六)
  • SORT与DeepSORT简介
  • TCP/IP网络编程——多播与广播
  • K8S DNS解析过程和延迟问题
  • 【JavaScript】js实现深拷贝的方法
  • RK3288 GPIO记录
  • MongoDB介绍及使用教程
  • 51单片机开发环境搭建 - VS Code 从编写到烧录