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所在的机器必须要同它们通信才能把所有输入自己的分区数据远程拷贝到本机器上。

这样性能瓶颈就是网络数据的传输。

最新文章

  1. html 输入框 只能输入数字 只能输入字母数字组合
  2. 从零自学Hadoop(03):Linux准备上
  3. shell 中 &&和||的方法
  4. js 获取时间差
  5. TC79
  6. 数据库存储txt文本和jpg图片
  7. 洛谷P1474 货币系统 Money Systems
  8. Apache中关于页面缓存的设置
  9. android handler机制简单介绍
  10. javascript中对条件推断语句的优化
  11. YARN & HDFS2 安装和配置Kerberos
  12. 数据和C
  13. 一个用js写的接口http调试程序
  14. android中的返回键与Activity
  15. changePage() 页面跳转
  16. 广告等第三方应用嵌入到web页面方案 之 使用js片段
  17. Flex中对表格中某列的值进行数字格式化
  18. golang 常见疑惑总结
  19. kali linux工具--信息批量收集工具theharvester
  20. css a的伪类顺序

热门文章

  1. HLG 2025
  2. HDU-1392 Surround the Trees,凸包入门!
  3. nginx反向代理,负载均衡,动静分离,rewrite地址重写介绍
  4. 计算几何 I. 极角
  5. [BZOJ2287]【POJ Challenge】消失之物(DP)
  6. Hadoop 3.1.0 在 Ubuntu 16.04 上的安装过程
  7. 洛谷 [P3224] 永无乡
  8. 跳蚤 BZOJ 4310
  9. ci框架——修改分页的显示样式
  10. iscroll API