码迷,mamicode.com
首页 > 其他好文 > 详细

hadoop1.x   MapReduce工作原理

时间:2016-06-04 18:05:09      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:hadoop1.2 mapreduce 工作原理

技术分享

技术分享

技术分享

技术分享

MapReduce 如何解决负载均衡和数据倾斜:

阶段主要出在Map作业结束后,shuffer(洗牌)过程中,如何将map处理后的结果分成多少份,交由Reduce作业,使得每部分reduce作业尽可能均衡处理数据计算。

系统默认将partitions  按照Hash模运算分割(存储对象的hash值与reduce的个数取模),这样很容易出现数据倾斜,导致其中一个reduce作业分得大量数据计算,另一个ruduce作业基本上没有任何数据处理。如何,解决的这种事情,就需要靠程序控制partitions的值

 

Sort:默认排序是按照字典排序的(按ASCII

 

Shuffer阶段比较的操作要执行两次,一次是map task之后的sort另一次是在从本次磁盘将partition数据拷贝到指定reduce 之前的合并,将符合统一范围的key的数据归并



技术分享

技术分享

面试:

1.partition:将map输出的数据,按照某种规则将数据划分,分给哪一个reduce,默认使用hash模运算执行

  2.spill

    过程:map的内存缓存区数据填满时,启动一个单独的线程,将数据按照一定比例写入本地磁盘。

 Sort:将数据按照大小排序(可自定义)默认字典排序

 Combiner:(可有可无)将相同的K_V中的value加起来,减少溢写磁盘的数据

技术分享

Shuffer的后半过程:

 map处理后放入map节点的本地磁盘的数据拷贝到rudece节点的内存中 去,数据量少的话,直接交由reduce处理。数据量大的时候,同样需要溢写到磁盘中,按照K值相同的方法进行merge,然后在交由指定的reduce执行


技术分享


修改默认hdfsblock大小:

这个需要修改hdfs-site.conf配置文件,增加全局参数dfs.block.size

如下:

修改后参数,

把配置同步到其它节点,并重启hdfs

技术分享


技术分享


hadoop1.x   MapReduce工作原理

标签:hadoop1.2 mapreduce 工作原理

原文地址:http://icola.blog.51cto.com/5412204/1786068

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!