zoukankan      html  css  js  c++  java
  • [Hadoop] reduce爆内存的解决方法

    (1) 【join爆内存】

    在join之前,对这两部分数据,分别能先reduce的先reduce, 降低join时候分给每个reducer的条目数。

    比如要拼接两份数据,每份数据A, B中相同key的条目最多有上百万条。

    可以先分别对A, B先进行reduce操作,之后再join,

    这样join时候传给每个reducer的相同key的条目数就由百万条,降低为个位数了。

    (2) 【指定随机数辅助分reduce】

    对于无法按照(1)中处理的情况:

    如果直接将相同key的放一个reducer中可能会爆内存;

    可以再人为指定辅助key (random_number, key),

    比如这个random_number有10种不同的取值,那么相当于之前要分给1个reducer的数据,分给了10个reducer,降低了每个reducer的处理压力。

    之后再 按照 原key进行一次reduce。

  • 相关阅读:
    Git 基本操作
    Git 基础
    MarkDown教程
    Python常用函数
    Python生成器
    Python列表生成式
    Python迭代
    Python切片
    Python函数
    Python不可变对象
  • 原文地址:https://www.cnblogs.com/shiyublog/p/13500900.html
Copyright © 2011-2022 走看看