数据倾斜
2017-06-26 本文已影响84人
LogosLi
数据倾斜
前言
前言
在从事大数据的工作中最为麻烦的事情就是和前端进行日志格式的商定,以及一旦有人辞职之后对于日志格式交代的不清晰,这种情况也会造成数据倾斜的现象。
原因
1.某个区域的数据特别大,超过其它区域太多
2.部分key的数量远超平均值
3.就是数据处理任务的分配不均
4.Hash值重复(文件数量超级多,根据hash值进行的任务分区)
5.现象就是当任务的进度执行在一定程度时忽然停了下来或者说慢了下来
注:其实就是某一个线程的任务特别耗时,其它线程的任务全部处理完了,这个线程还在处理任务,这就造成整体的耗时被拉长了。
处理方法
自定义分区
在MP过程中,在M处理完成数据之后,会交给我们的Partitioner去决定发送的Reducer的节点,默认使用HashPartitioner去分配节点,我们可以自定义这个分区,重写这个类的方法。
设定combiner
也就是进行local化的整合处理,减少流向reduce的文件数量