136课: Spark面试经典系列之数据倾斜解决原理和方法总论. 1 spark数据倾斜解决的原理总论 2 spark数据倾斜解决方法总论
RDD-钨丝计划-DataFrame-Dataset 数据倾斜后果很严重:OOM、速度慢,不能控制时间 数据倾斜解决原理,讨论: 1、spark基于线程复用,均衡计算、均衡数据 2、key值加上随机前缀 两阶段聚合 局部聚合+全局聚合 3、别只考虑数据量,还要考虑具体数据在具体机器上的计算能力,进行平滑拆分 4、采样倾斜key并分拆join操作 5、去掉shuffle 6、适当提高shuffle操作的并行度 7、根据key值扩大数据规模 膨胀数据 8、reducebykey、join在shuffle之前解决掉,利用广播 9、不要小看spark的数据结构,使用好的数据结构和序列化,编码解码方式,减少数据总量,节省30%的磁盘、内存,要知道GC是spark的死穴 10、将数据放在Tachyon中带来更好的数据本地性,减少网络的Shuffle 11、复用RDD,最小化job的工作,极大的缓解数据倾斜。已有RDD复用可能 30% 80% 100%