spark 应用输出debug日志

问题:

yarn container 大量输出debug日志 –> 磁盘写满 –> nodemanager 识别该盘为bad disk -> 停止服务 -> spark task lost 。

container stdout:
这里写图片描述

排错过程:
  1. 查看spark log4j文件,yarn log 级别,应用代码是否设置日志级别,均无异常。
  2. 发现driver,executor日志输出表现不一致(driver成功加载,executor表现和配置不一致)
  3. 关闭从hdfs 获取jar包的方式,恢复正常。 定位问题为 jar 包问题(增加了jar包,怀疑日志相关的包版本不同或是错误加载了lo4j文件)
  4. 配置日志文件读取参数,防止加载到错误的log4j文件
    spark.files /path/to/container-log4j.properties
    spark.executor.extraJavaOptions -Dlog4j.configuration=container-log4j.properties -Dlog4j.debug=true
    发现container已经成功加载到指定的log4j配置文件,提示 classNotFound PatternLayoutBaseInfo.class ,查看是否jar包多版本问题,无果。
  5. 了解到 hdfs 上spark 自带的 slf4j-log4j12-1.7.16.jar 包由于和 spring boot logback 冲突被人工删除。
问题解决:

spring boot 去掉 logback 依赖,hdfs yarn_jars目录恢复 slf4j-log4j12-1.7.16.jar 。

改进:

对container日志大小进行限制 (1g):
log4j.appender.file.MaxFileSize=256MB
log4j.appender.file.MaxBackupIndex=4

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值