大数据开发技术的数据倾斜是怎样造成的如何查看和解决

常见的数据倾斜是怎么造成的?
shuffle的时候,将各个节点上相同的key拉取到某个节点的一个task进行处理,比如按照key进行聚合或join等操作,如果某个key对应的数据量特别大的话,就会发生数据倾斜现象。数据倾斜就成为了整个task运行时间的短板。
触发shuffle的常见算子:distinct、groupbykey、reducebykey、aggregatebykey、join、cogroup、repartition等。
要解决数据倾斜的问题,首先要定位数据倾斜发生在什么地方。
首先是哪个stage,直接在web ui上看就可以,一般出现倾斜都是耗时特别长的stage,然后查看运行耗时的task,一般是其中的某几个task一直拖着,其他的task早已经完成了,根据这个task,根据stage划分原理,推算出数据倾斜发生在哪个shuffle类算子上。
如何查看发生倾斜的rdd呢?
如果是spark rdd执行shuffle算子导致的数据倾斜,那么可以在spark作业中加入查看key分布的代码,比如rdd.countbykey()。然后对统计出来各个key出现的次数,collect、take到客户端打印一下,就可以看到key的分布情况。
以下方法可以大概看出哪个key出现了倾斜:
javapairrddhssdata = gethssdata(fs, sc, hsspath);
javapairrddsample = hssdata.sample(false, 0.1);
mapcountbykey = sample.countbykey();
出现倾斜的key有两种情况:
1、某个可以出现倾斜
2、多个key出现倾斜
某个key出现倾斜解决办法:
通过上述方法可以知道是哪个key出现了倾斜,所以可以先通过filter方法过滤掉倾斜的key,把倾斜的key和没有倾斜的key分开处理,由于spark运行机制,所以单独处理倾斜key的时候就不会再出现倾斜现象。
上述方法只能处理特定的数据倾斜,对于实际的生产环境可能并不怎么适用,这事是解决倾斜的其中一个方法。
多个key出现倾斜的解决办法:
原理:在倾斜shuffle之前给每一个key都加上一个随机前缀,然后再给加了前缀的key进行一个shuffle操作,在shuffle操作后再把key的前缀去掉。在这个过程中由于前缀的加入,会把倾斜的key随机的分配到不同的task。然后去掉前缀从而解决数据倾斜的问题。
private static javapairrddrepar(
javapairrdd。cdr) {
javapairrddmaptopair;
try {
maptopair = 。cdr
.maptopair(new pairfunctiontuple2, string, agg() {
@override
public tuple2call(tuple2t)
throws exception {
//产生随机前缀,随机数大小看情况决定
long i = (long) (math.random() * 150);
//添加随机数前缀
return new tuple2(i + _ + t._1, t._2);
}
}).sortbykey()//进行一个shuffle操作打乱key
//去掉随机数前缀
.maptopair(new pairfunctiontuple2, string, agg() {
@override
public tuple2call(tuple2t)
throws exception {
string str = t.1.split()[0];
return new tuple2(str, t._2);
}
});
} catch (exception e) {
return null;
}
return maptopair;
}
以上是解决rdd数据倾斜简单方法。

用于验证错误优化的静态测试用例和测试过程分析工具
什么是多功能电力仪表,它的作用是什么
思尔芯重磅发布自研数字电路调试软件“芯神觉”
cmos电路焊接注意事项
远景维珍车队联合《国家地理》儿童版开展DrawWithRob绘画设计大赛
大数据开发技术的数据倾斜是怎样造成的如何查看和解决
如何使用“金属电容式”触摸系统创建界面
联诚发|一封来自中国中小企业国际合作协会的感谢信!
RS232C/TTL电平转换和串口取电
基于语音合成芯片MSP50C30和MELP的电子语音导游机
什么是机械冲击测试?
浙江省智能传感材料与芯片集成技术重点实验室揭牌
恩智浦全新的TDA18272为硅调谐器订立了基准
pt100温度传感器阻值,pt100温度与阻值对照表
与非门带动声响器电路图
华为P10Plus评测:华为P10Plus配置性能大提升,价格却跌至新低!由内而外的美值得购买
如何确定运输过程的损坏原因?
全球电子成就奖揭晓,概伦电子蝉联年度EDA产品奖
油气田常用的5类流量计有哪些
天马发布折叠屏光学指纹识别解决方案