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的个数,因此两个参数一般不同时使用

最新文章

  1. ps命令
  2. WLAN协议相关协议
  3. AppSettings从数据库读取
  4. Synchronized和Static Synchronized区别
  5. Windows上一步一步CoreRun
  6. iOS ARC下循环引用的问题 -举例说明strong和weak的区别
  7. C# 计算一段代码执行的时间函数
  8. [每日一题] 11gOCP 1z0-053 :2013-10-7 the backup of MULT_DATA................................32
  9. Scanner类的.next()和.hashNext()方法
  10. 关于DateTime和String转换的容易犯得错误
  11. 使用代码自定义UIView注意一二三
  12. Appium项目搭建 For windows
  13. IDEA+Java:Selenium+Maven+TestNG基本WebUI自动化测试环境搭建
  14. java程序高CPU,如何直接定位(linux系统下命令行操作)
  15. C#用默认浏览器打开特定网址的几种方法
  16. hph 缓存机制
  17. 机器学习进阶-图像基本操作-图像数据读取 1.cv2.imread(图片读入) 2.cv2.imshow(图片展示) 3.cv2.waitKey(图片停留的时间) 4.cv2.destroyAllWindows(清除所有的方框界面) 5.cv2.imwrite(对图片进行保存)
  18. Mybatis 表名是变量时
  19. 35个java代码性能优化总结
  20. 【NOIP2013】 华容道 bfs预处理+bfs

热门文章

  1. jquery 改变checkbox的值
  2. IPMI特点和功能
  3. Ubuntu使用yah3c连接校园网
  4. 升级个人网站框架组件IBatisNet+Castle
  5. python之gevent模块实现协程
  6. 数据库读写分离(aop方式完整实现)
  7. C++中获取时间
  8. [Go语言]从Docker源码学习Go——if语句和map结构
  9. 【BZOJ1816】[Cqoi2010]扑克牌 二分
  10. Jupyter Notebook远程服务器配置