zoukankan      html  css  js  c++  java
  • HIVE大数据出现倾斜怎么办

    hive在跑数据时经常会出现数据倾斜的情况,使的作业经常reduce完成在99%后一直卡住,最后的1%花了几个小时都没跑完,通过YARN的管理界面配合日志,可以清楚其中的具体原因,这种情况就很可能是数据倾斜的原因,解决方法要根据具体情况来选择具体的方案

    1.如果你知道某些字段造成的倾斜,可以把这些字段抽出来单独处理,这样的话,MR会多分配几个实例,提高执行速度。

    2.

    set hive.exec.reducers.bytes.per.reducer = 1000000000

    也就是每个节点的reduce 默认是处理1G大小的数据,如果你的join 操作也产生了数据倾斜,那么你可以在hive 中设定

    set hive.optimize.skewjoin = true; 
    set hive.skewjoin.key = skew_key_threshold (default = 100000)

    这个表示记录的行数,

    hive 在运行的时候没有办法判断哪个key 会产生多大的倾斜,所以使用这个参数控制倾斜的阈值,如果超过这个值,新的值会发送给那些还没有达到的reduce, 一般可以设置成你(处理的总记录数/reduce个数)的2-4倍都可以接受.

    3 reduce task数量太少,直接设置大它的数量试试

    set mapred.reduce.tasks=xxx

    默认是先设置hive.exec.reducers.bytes.per.reducer这个参数,设置了后hive会自动计算reduce的个数,因此两个参数一般不同时使用

  • 相关阅读:
    CABasicAnimation 使用
    CABasicAnimation(CAKeyframeAnimation)keypath 取值
    c++的应用领域
    QT 状态机详解 statemachine (转)
    C++默认实参
    String隐式共享
    可重入函数与不可重入函数
    堆和栈的区别(转过无数次的文章)
    Qt Model/View(转)
    C++虚函数和纯虚函数
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/6275555.html
Copyright © 2011-2022 走看看