数据倾斜问题简单几句话
2015-05-18 21:15
141 查看
参考:http://blog.csdn.net/pursuitbeauty/article/details/45827469
http://blog.csdn.net/pursuitbeauty/article/details/38236171
总结为一下的几点:
现象:
就是某些map的文件个数过大,由于hash函数分配不均匀,导致有一些reduce的停滞的时间过长。
产生原因:
即为:
1、Key太多
2、.null过多
3、group by 维度过少
4、不同的值类型进行关联造成某种类型的数据倾斜
处理方法:
第一层:
1、设置combine.
2、设置groupby=true属性,让groupby任务平均分发到各个reduce节点,然后reduce节点在统一进行处理。
第二层:
1、小表连接大表
2、设置NULL为随机数
3、将不同的数据类型进行转换。
3、控制MAP,可以合并文件
4、控制reduce
5、文件的大小
6、合并group by语句
http://blog.csdn.net/pursuitbeauty/article/details/38236171
总结为一下的几点:
现象:
就是某些map的文件个数过大,由于hash函数分配不均匀,导致有一些reduce的停滞的时间过长。
产生原因:
关键词 | 情形 | 后果 |
Join | 其中一个表较小, 但是key集中 | 分发到某一个或几个Reduce上的数据远高于平均值 |
大表与大表,但是分桶的判断字段0值或空值过多 | 这些空值都由一个reduce处理,灰常慢 | |
group by | group by 维度过小, 某值的数量过多 | 处理某值的reduce灰常耗时 |
Count Distinct | 某特殊值过多 | 处理此特殊值的reduce耗时 |
1、Key太多
2、.null过多
3、group by 维度过少
4、不同的值类型进行关联造成某种类型的数据倾斜
处理方法:
第一层:
1、设置combine.
2、设置groupby=true属性,让groupby任务平均分发到各个reduce节点,然后reduce节点在统一进行处理。
第二层:
1、小表连接大表
2、设置NULL为随机数
3、将不同的数据类型进行转换。
3、控制MAP,可以合并文件
4、控制reduce
5、文件的大小
6、合并group by语句
相关文章推荐
- 让人头痛的大数据倾斜问题
- ajax获取数据中文乱码问题最简单的完美解决方案
- Spark Shuffle六大问题 fetch操作、数据存储、文件个数、什么排序算法简单介绍
- MVC Model之简单数据问题
- 数据结构之链表与数组(二) -单向链表上的简单操作问题
- 一个简单的C语言 整型数据溢出问题
- 简单解决php+mysql时mysql数据表中的中文乱码问题
- hive数据倾斜问题
- Spark学习笔记之join和数据倾斜问题
- 老三章(绪论+简单程序介绍+数据类型),没遇到啥大问题。。
- datagridview中显示的数据导出到Excel——用最简单的方法解决科学计数法的问题
- 数据倾斜问题和滑动窗口uv统计问题
- springMVC对简单对象、Set、List、Map的数据绑定和常见问题(一)
- 一段简单的代码,解决了数据乱码的问题。?characterEncoding=utf8
- 05-简单和复杂数据类型存储和传递问题
- Spark之通过自定义分区器解决数据倾斜问题
- 解决spark中遇到的数据倾斜问题
- 大规模数据相似度计算时,解决数据倾斜的问题的思路之一(分块思想)
- hive数据倾斜问题
- hive 数据倾斜实际问题中总结