博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shuffle对MapReduce性能调优
阅读量:5845 次
发布时间:2019-06-18

本文共 694 字,大约阅读时间需要 2 分钟。

  hot3.png

Shuffle对MapReduce性能调优:

Shuffle和排序

MapReduce确保每一个reduce的输出都按键排序,系统执行排序的过程---------将map输出作为输入传给reduce--------称为shuffle

Shuffle过程是MapReduce的”心脏”,也被称为奇迹发生的地方

1. 每个map有一个环形内存缓冲区,用于存储任务的输出。默认大小100MB(io.sort.mb属性),一旦达到阀值0.8(io.sort.spill.percent),一个后台线程把内容写到(spill)磁盘的指定目录(mapred.local.dir)下的新建的一个溢出写文件。

2. 写磁盘前,要partition,sort。如果有combiner,combine排序后数据。
  a)partition的意义在于可以分区管理,分类导出数据;例如男女,我需要分成两个文件,我就可以设置partition来区分,reduceTask至少2个来分别运行
  b)运行conbiner的意义在于是map输出更紧凑,使得写到本地磁盘和传给reducer的数据更少
3. 等最后记录写完,合并全部溢出写文件为一个分区且排序的文件。

补充:

  1. Reducer通过Http方式得到输出文件的分区。
  2. TaskTracker为分区文件运行Reduce任务。复制阶段把Map输出复制到Reducer的内存或磁盘。一个Map任务完成,Reduce就开始复制输出。
  3. 排序阶段合并map输出。然后走Reduce阶段。

转载于:https://my.oschina.net/repine/blog/527833

你可能感兴趣的文章
Angular动态注册组件(controller,service...)
查看>>
LuaStudio编辑调试软件
查看>>
iOS动画之模拟音量振动条
查看>>
Windows下64位Apache服务器的安装
查看>>
微信公众平台开发,图文回复、access_token生成调用、以及微信SDK的实现(2)
查看>>
Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (三)
查看>>
Windows7中被大家忽略的实用七大功能
查看>>
18年ACM赛后总结
查看>>
一些认识或对不清楚知识的猜想
查看>>
MySQL取每组的前N条记录
查看>>
功能奇数次执行和偶数次执行时的结果不同的故障复盘
查看>>
问题:Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?【原创】...
查看>>
Android基础知识、四大组件(转)
查看>>
vim进阶学习笔记
查看>>
iOS设计模式解析(五)责任链模式
查看>>
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
查看>>
[转]虚方法(virtual)和抽象方法(abstract)的区别
查看>>
ubuntu14.04安装显卡驱动(转载)
查看>>
Java防盗链实现
查看>>
TP5的类似TP3使用‘DEFAULT_THEME’的配置修改主题风格的方法,以及常见模板错误...
查看>>