看图说mapreduce的shuffle机制
来源:互联网 发布:中国保险保险网络大学 编辑:程序博客网 时间:2024/05/16 15:42
看图说shuffle过程:
mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle
1、shuffle是MR处理流程中的一个过程,它的每一个处理步骤是分散在各个map task和reduce task节点上完成的,整体来看,分为3个操作:
- partition分区(shuffle必要操作)。
- sort排序,根据key排序(shuffle必要操作)。
- combiner进行局部的value的合并(shuffle非必要要操作)。
2、shuffle详细过程
- maptask收集kv对到内存缓存(buffer in memory)。
- 从内存缓存中不断溢出文件到本地磁盘,可能会溢出很多文件,溢出的大小默认是100M。
- 在文件溢出的过程中会对文件进行分区(分组)、和针对key排序(parition,sort)。
- 会对分区、排序的多个文件进行一次归并排序(merger on disk)。
- reducetask会根据自己分分区号,去各个maptask机器上取相应的结果分区数据。
- reduce会取到同一个分区的来自不同maptask的结果文件(other maps),然后reducetask会将这些文件进行再次合并(同样会做一次归并排序)。
- 合并文件结束后整个shuffle也结束了,最后会进入reduce的业务逻辑。
阅读全文
0 0
- 看图说mapreduce的shuffle机制
- mapreduce的shuffle机制
- MapReduce的shuffle机制
- MapReduce中的shuffle机制
- MapReduce中的shuffle机制
- mapreduce的shuffle机制(来自学习笔记)
- mapreduce的shuffle详解
- MapReduce的Shuffle阶段
- MapReduce的shuffle过程
- MapReduce的shuffle过程
- MapReduce的shuffle过程
- mapreduce的shuffle过程
- mapreduce的shuffle过程
- MapReduce的Shuffle原理
- MapReduce的shuffle阶段
- MapReduce的Shuffle过程
- mapreduce原理完全剖析与shuffle机制
- mapreduce的shuffle和排序
- petalinux 2017.2安装指南
- CF--- PROBLEM 620 E 【思维 + DFS序 + 二进制状态】
- PHP匿名函数(闭包函数)
- Javaweb中JSP和Servlet的概述
- javascript入门第一课
- 看图说mapreduce的shuffle机制
- 页面底部功能区布局
- HDU 1003最大子段和
- Android高级进阶-换肤
- 数据结构(Java)---线性表
- HDU 3631 Shortest Path Floyd
- Gan与imitation learning,theano平台搭建 (2)
- 235/236. Lowest Common Ancestor of a Binary Search Tree/Lowest Common Ancestor of a Binary Tree
- HDOJ HDU 1047 Integer Inquiry