关于MapReduce

角色:

执行MapReduce任务的角色:JobTracker,TaskTracker,一个Hadoop集群只有一个JobTracker,JobTracker负责管理和调度工作,TaskTracker负责执行工作。

 

数据流:

                  

                          MapReduce工作的简易图                   

                一个Reduce任务的MapReduce数据流 

 

 

 

                      多个Reduce任务的MapReduce数据流

                     

 

                    无Reduce任务的MapReduce数据流

 

MapReduce任务优化:

MapReduce的任务优化自主集中在两个方面:1.计算性能方面的优化 2.I/O操作方面的优化,主要包含六项内容:

1.任务调度

  Hadoop总会将优先任务分配给空闲的机器,使所有任务公平地分享系统资源

  Hadoop会尽量将Map任务分配给InputSplit所在的机器以减少I/O操作。

2.数据预处理与InputSplit的大小

  Hadoop擅长处理少量的大数据,而非大量的小数据。提交MapReduce job前进行预处理,合并数据以提高执行效率。

3.Map和Reduce任务的数量

  合理设置Map任务和Reduce任务的数量对提高效率也使非常重要的。

  MapReduce任务槽:MapReduce任务槽就是这个集群能够运行的最大任务量。

  设置Map数量主要参考Map的运行时间,Reduce任务参考任务槽的数量即可,一般为任务槽的0.95或1.75倍

4.Combine函数

  combine是一个本地合并数据的函数。MapReduce框架运行用户写的combine函数用于本地合并,减少网络I/O操作消耗

5.压缩

  对Map的输出和最终的输出结果进行压缩,减少网络数据传输量。

6.自定义comparator

  自定义数据类型,实现更复杂的目的。

 

Hadoop流:

Hadoop流就是UNIX标准流,不具体介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值