您现在的位置:首页 --> 查看专题: 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天十大热文
-
[1197] WordPress插件开发 -- 在插件使用 -
[88] 解决 nginx 反向代理网页首尾出现神秘字 -
[43] web开发设计人员不可不用的在线web工具和 -
[30] Rax 系列教程(长列表) -
[29] 一句话crontab实现防ssh暴力破解 -
[29] Java开发岗位面试题归类汇总 -
[29] 手机产品设计方向 -
[28] 如何建立合适的索引? -
[26] 程序员疫苗:代码注入 -
[25] 我对学习oracle与成长的理解
赞助商广告
