您现在的位置:首页 --> 查看专题: shuffle
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。规避错误来更好的运行比解决错误更高效。在查看了一些资料后,总结如下。 1数据倾斜的原因 1.1操作: 关键词 情形 后果 Join 其中一个表较小, 但是key集中 分发到某一个或几个Reduce上的数据远高于平均值 大表与大表,但是分桶的判断字段0值或空值过多 这些空值都由一个reduce处理,灰常慢 group by group by
[ 共2篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [343] Go Reflect 性能
- [14] [译]Google Chrome中的高性能网
- [11] Linux Used内存到底哪里去了?
- [10] webapp网页调试工具Chrome Dev
- [10] Mac下.apk的反编译
- [10] 精于图片处理的10款jQuery插件
- [9] 在FreeNAS/BSD搭建基于Nginx+
- [9] rsync同步的艺术
- [9] 程序中的“多线程”
- [9] jQuery性能优化指南
赞助商广告