AKS环境下Spark History Server无法查看驱动日志问题排查
问题分析与解决方案
核心问题
Spark History Server无法解析Snappy压缩的事件日志和驱动日志,因为History Server自身未配置对应的压缩Codec参数,或者运行环境缺少Snappy库支持,导致抛出CODEC_NOT_AVAILABLE错误。
解决步骤
1. 为Spark History Server配置Snappy压缩Codec
你的Spark应用使用spark.io.compression.codec: snappy生成压缩日志,History Server必须使用相同的配置才能解析这些日志。
如果是通过Helm部署的Spark History Server,修改你的Helm values文件,添加History Server的Spark配置:
sparkHistoryServer: sparkConf: spark.io.compression.codec: "snappy" spark.history.fs.logDirectory: "file:/data" # 确保和应用配置的日志目录一致
然后执行Helm升级命令重新部署:
helm upgrade my-release bitnami/spark --values your-custom-values.yaml
2. 验证History Server镜像包含Snappy库
Bitnami官方Spark镜像默认包含Snappy依赖,但可以进入History Server Pod确认:
kubectl exec -it <your-history-server-pod-name> -- bash # 检查Snappy相关Jar包是否存在 ls /opt/spark/jars | grep snappy
如果输出为空,说明镜像缺少Snappy库,需更换为包含snappy-java的Spark镜像,或在自定义镜像中添加依赖。
3. 验证修复效果
重新部署后,查看History Server的Pod日志,确认不再出现CODEC_NOT_AVAILABLE错误:
kubectl logs <your-history-server-pod-name>
之后访问Spark History Server UI,应该能正常加载驱动和执行器日志。
内容的提问来源于stack exchange,提问作者Tad
相关产品推荐
相关产品推荐

