spark异常分析(一)
2017-09-05 19:20
211 查看
程序频繁出现lost executor问题,提示与某个节点无法连接,failed to connect to……
观察异常节点在集群里面的情况,如下,隔一段时间会出现网络异常
最开始,我们以为是机房网络出了问题,于是对这个节点的流量进行监控,发现如下:(该服务器的交换机端口有流量打满的情况)
观察程序运行,故障发生在大数据量的shuffle read过程,每次在这个环节会lost executor
所以还是程序的问题,spark job的shuffle数据量过大,占完了机器的带宽
准备减少单个机器的shuffle数据量,增大数据分区,让每个任务处理的数据量减少
在spark-sql中的设置如下:
spark.sql.shuffle.partitions=xxx(默认为200,根据数据情况适量增大xxx)
如果是直接操作rdd,则设置如下:
spark.default.parallelism=xxx(默认为200,根据数据情况适量增大xxx)
经过调整之后,问题没有再出现。
观察异常节点在集群里面的情况,如下,隔一段时间会出现网络异常
最开始,我们以为是机房网络出了问题,于是对这个节点的流量进行监控,发现如下:(该服务器的交换机端口有流量打满的情况)
观察程序运行,故障发生在大数据量的shuffle read过程,每次在这个环节会lost executor
所以还是程序的问题,spark job的shuffle数据量过大,占完了机器的带宽
准备减少单个机器的shuffle数据量,增大数据分区,让每个任务处理的数据量减少
在spark-sql中的设置如下:
spark.sql.shuffle.partitions=xxx(默认为200,根据数据情况适量增大xxx)
如果是直接操作rdd,则设置如下:
spark.default.parallelism=xxx(默认为200,根据数据情况适量增大xxx)
经过调整之后,问题没有再出现。
相关文章推荐
- KDE Connect —— 让 Android 手机成为 KDE 桌面的一部分
- Spark RDD API详解(一) Map和Reduce
- 使用spark和spark mllib进行股票预测
- vivi下重新调整分区
- Spark随谈——开发指南(译)
- Spark,一种快速数据分析替代方案
- 逻辑卷管理(LVM) Linux 用户指南
- 怎样用 parted 管理硬盘分区
- 建议的服务器分区办法
- 建议的分区办法
- Can't connect to MySQL server on 'localhost' (10048)问题解决方法
- mysql利用init-connect增加访问审计功能的实现
- 恢复主引导分区
- SQLServer 通用的分区增加和删除的算法
- Oracle中的Connect/session和process的区别及关系介绍
- Express框架之connect-flash详解
- mysql分区功能详解,以及实例分析
- 关于mysql init_connect的几个要点总结
- C#判断指定分区是否是ntfs格式的方法
- mysql分表和分区的区别浅析