shuffle一个简单的过程叙述性说明
一个 简单 过程 说明 shuffle
2023-09-27 14:27:02 时间
shuffle它是在map和reduce过程之间。我们看看在这个过程中的步骤,了解在这个问题上不深,有可能是一个错误。忘记修正
1. map
map出口key,value,里的context.write(key, value);。这个步骤是将key,value写到内存buffer里了,这个内存的默认大小是100M
2. sort
当数据大小超过buffer容量的80%(默认)时。会将这部分数据进行排序,依照partition和key值进行排序,partition代表的是会分到哪个reducer里
3. 溢写
排好序之后将数据写到磁盘上
4. merge
由于非常多时候不是一次溢写就能够了,可能会经过多次溢写。所以会在磁盘上产生多个文件,这个时候就须要将文件进行合并。
5. copy
通过http的方式将上一个步骤中的磁盘上的数据copy到相应的reduce端
6. mergesort
每一个map的输出端的文件时依照key排好序的,这个地方是对多个map端的文件依照key进行排序,边merge边sort
7. reduce
更具体的内容见这篇博文
http://blog.csdn.net/nwpuwyk/article/details/37904657
版权声明:本文博主原创文章,博客,未经同意不得转载。
相关文章
- 发现一个大神做了一个ROS-ROUTEROS的中文手册中文使用说明书
- FusionInsight怎么帮「宇宙行」建一个好的「云数据平台」?
- 14 亿身份泄露曝光,一个垃圾邮件帝国的覆灭
- 一个简单实用的Android调试应用技巧
- 一个值得推荐的发行版:Manjaro Linux
- 缺少最佳实践怎么办?浪潮给你一个企业数字化转型的“罗盘”
- 一天一个 Linux 命令(2):ls 命令
- 从一个简单的main方法执行谈谈JVM工作机制
- 【Python】绘制一个简单的圣诞树(细节线条版)
- 面试官问我:如何设计一个秒杀场景?
- 在 github 新建一个文件夹
- DAO设计模式---实现一个简单的注册(中)
- pig加载两个不同字段个数的文件?load file with different items(f1有42列,f2有43列读到一个对象中)
- 一个简单的java僵局演示示例
- 242. 一个简单的整数问题
- 使用Socket模拟一个简单的Webservice调用
- Java stream() 获取List指定元素或最后一个元素的方法
- 关于PostMan的一个坑
- face-api.js:一个在浏览器中进行人脸识别的 JavaScript 接口
- 一个跨平台的 C++ 内存泄漏检测器
- 用 Python 实现一个最简单的对象模型
- WCF后续之旅(13):创建一个简单的SOAP Message拦截、转发工具[下篇]
- WCF后续之旅(13): 创建一个简单的WCF SOAP Message拦截、转发工具[上篇]
- 实现一个最简单的VIM文本编辑器(可能有bug,随便写了一个)
- 机器学习之路: tensorflow 一个最简单的神经网络
- 拷贝一个用户下的所有表和数据到另外一个库