hadoop shuffle
1 hadoop shuffle的地位
hadoop shuffle是map reduce算法的核心,是它连接了多个map和多个reduce,它将map的输出交给reduce作为输入。
2 hadoop shuffle工作在哪里
shuffle工作在map端
3 hadoop shuffle做了什么
它首先对所有的map的输出进行分区,对分区进行编号,来自不同map的具有相同编号的分区交给同一个reduce来处理。
它必须保证一点,来自所有map的相同的key的记录必须要被划分到同一个分区。原因很简单,reduce函数的输入就是一个key,对应该key的所有的values。
可见,是hadoop shuffle保证了mapreduce的编程模型。map只需要把输入分成新的key value即可,而reduce处理的对象是所有的map的输出中同一个key的所有values。
4 hadoop shuffle是怎样实现的
public int getPartition(K2 key, V2 value,
                          int numReduceTasks) {
    return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks;
  }
对key进行hash保证了,相同的key具有相同的hash值,然后对reduce task数目取模,那么相同的key肯定是有相同的分区id的。这样,所有的map的具有相同key的键值对记录都会被划分到同一个分区中,进而交给同一个reducer。
5 shuffle过程存在的问题
因为map位于不同的机器,所以reducer所在的机器必须要同它们通信才能把所有输入自己的分区数据远程拷贝到本机器上。
这样性能瓶颈就是网络数据的传输。
hadoop shuffle的更多相关文章
- Hadoop shuffle与排序
		
Mapreduce为了确保每个reducer的输入都按键排序.系统执行排序的过程-----将map的输出作为输入传给reducer 称为shuffle.学习shuffle是如何工作的有助于我们理解ma ...
 - hadoop Shuffle Error OOM错误分析和解决
		
在执行Reduce Shuffle的过程中,偶尔会遇到Shuffle Error,但是重启任务之后,Shuffle Error会消失,当然这只是在某些特定情况下才会报出来的错误.虽然在每次执行很短的时 ...
 - hadoop: Shuffle过程详解 (转载)
		
原文地址:http://langyu.iteye.com/blog/992916 另一篇博文:http://www.cnblogs.com/gwgyk/p/3997849.html Shuffle过程 ...
 - 【hadoop】有参考价值的博客整理
		
好文章的网址: hadoop shuffle机制中针对中间数据的排序过程详解(源代码级) Hadoop mapreduce原理学习 与 Hadoop 对比,如何看待 Spark 技术? 深入理解Had ...
 - 大数据框架:Spark vs Hadoop vs Storm
		
大数据时代,TB级甚至PB级数据已经超过单机尺度的数据处理,分布式处理系统应运而生. 知识预热 「专治不明觉厉」之“大数据”: 大数据生态圈及其技术栈: 关于大数据的四大特征(4V) 海量的数据规模( ...
 - (转)聊聊Greenplum的那些事
		
开卷有益——作者的话 有时候真的感叹人生岁月匆匆,特别是当一个IT人沉浸于某个技术领域十来年后,蓦然回首,总有说不出的万千感慨. 笔者有幸从04年就开始从事大规模数据计算的相关工作,08年作为Gree ...
 - <Using parquet with impala>
		
Operations upon Impala Create table stored as parquet like parquet '/user/etl/datafile1' stored as p ...
 - 关于GreenPlum的一些整理
		
Greenplum数据库架构 Greenplum数据库基本由PostgreSQL核心增强数据库实例组合并衔接成的数据库管理系统,即Greenplum数据在PostgreSQL基础上扩展开发,每个Gre ...
 - 转:聊聊Greenplum的那些事
		
笔者有幸从04年就开始从事大规模数据计算的相关工作,08年作为Greenplum 早期员工加入Greenplum团队(当时的工牌是“005”,哈哈),记得当时看了一眼Greenplum的架构(嗯,就是 ...
 
随机推荐
- spring运行时没有问题,在单元测试时,出现java.lang.ClassFormatError错误
			
Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstrac ...
 - BZOJ3130 [Sdoi2013]费用流  【网络流 + 二分】
			
题目 Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络流方案必须满足:(1)每 ...
 - 陌上花开(bzoj 3262)
			
Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当 ...
 - 中国余数定理 1(codevs 3040)
			
题目描述 Description 摘自算法导论...... 找出第k个被3,5,7除的时候,余数为2,3,2的数: 输入描述 Input Description 一个数k. 输出描述 Output D ...
 - JavaScript 的时间消耗--摘抄
			
JavaScript 的时间消耗 2017-12-24 dwqs 前端那些事儿 随着我们的网站越来越依赖 JavaScript, 我们有时会(无意)用一些不易追踪的方式来传输一些(耗时的)东西. 在这 ...
 - LeetCode OJ--Evaluate Reverse Polish Notation
			
http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ 栈使用 #include <iostream> #inc ...
 - AC日记——美元汇率 洛谷 P1988
			
题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率.编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值. 输入输出格式 ...
 - 51NOD 1424 零树
			
Discription 有一棵以1为根的树,他有n个结点,用1到n编号.第i号点有一个值vi. 现在可以对树进行如下操作: 步骤1:在树中选一个连通块,这个连通块必须包含1这个结点. 步骤2:然后对这 ...
 - bzoj 2694: Lcm
			
2694: Lcm Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 422 Solved: 220[Submit][Status][Discuss] ...
 - iOS APP 的生命周期
			
1.在手机桌面上点击APP图标 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDi ...