Hadoop中的shuffle、partition和combiner

如大家所知道的,Hadoop的计算框架主要是两个过程分别是map和reduce,但是还有好几个过程跟性能调优有关。如:shuffle、partition和combiner。

shuffle:数据从map端传输到reduce端的过程。据说是可以期待奇迹发生的环节。

计算框架总体的过程如下:


map阶段:从磁盘读入数据 --> map函数 --> combine结果(非必需的过程)--> 结果写回磁盘。

map阶段中,当输出数据达到一定的值(阈值)时,会从内存写到磁盘;若小于阈值,则会缓存起来,可以减小磁盘IO开销。所以,可以通过设置适当的阈值大小,来优化性能。


reduce阶段:从map的输出中读入数据 --> sort(根据key值) --> reduce函数--> 结果到HDFS。

reduce阶段中,会从map端拉数据过来,可能会跨节点,应该尽量减少这种网络开销,使数据“本地化”。


partition:将map的结果发送到相应的reduce。

这就对partition有两个要求:

1)负载均衡。尽量将工作分配给不同的reduce。

2)效率。分配速度要快。

combiner:相当于本地化的reduce。

特点:map端的输出作为其输入;其输出作为reduce的输入。这就要求combiner要保持输入和输出类型的一致性,也就不适用求平均数、权益这样的运算。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值