开发者社区> 问答> 正文

MapReduce中的数据倾斜的解决思路是什么?

MapReduce中的数据倾斜的解决思路是什么?

展开
收起
游客daliwbfb2wo66 2021-12-04 21:43:49 371 0
1 条回答
写回答
取消 提交回答
  • 1.增加jvm内存,这适用于第一种情况

    2.增加reduce的个数,这适用于第二种情况

    3.自定义分区,这需要用户自己继承partition类,指定分区策略

    4.重新设计key,有一种方案是在map阶段时给key加上一个随机数,有了随机数的key就不会被大量的分配到同一节点(小几率),待到reduce后再把随机数去掉即可

    5.使用combinner合并,combinner是在map阶段,reduce之前的一个中间阶段,在这个阶段可以选择性的把大量的相同key数据先进行一个合并,可以看做是local reduce,然后再交给reduce来处理,这样做的好处很多,即减轻了map端向reduce端发送的数据量

    2021-12-04 21:44:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
HBase Rowkey设计要点 立即下载
HBase 吞吐量提升实践 立即下载
GC优化利器 - HBase2.0全链路offheap 立即下载