Google Dataproc历史服务器无法查看‘incomplete applications’中的运行Spark作业
解决Google Dataproc历史服务器不显示运行中Spark作业的问题
要让运行中的Spark作业显示在Dataproc历史服务器的「incomplete applications」标签页,需调整Spark相关配置,确保运行中作业的事件日志能被历史服务器实时读取:
启用Spark事件日志记录:提交作业或创建集群时,必须开启事件日志并指定存储路径(支持HDFS或GCS路径,Dataproc集群默认已配置HDFS,也可指定自定义GCS bucket):
# 提交作业时添加配置参数 gcloud dataproc jobs submit spark \ --cluster=your-cluster-name \ --properties spark.eventLog.enabled=true,spark.eventLog.dir=hdfs:///user/spark/eventlogs或在创建集群时预设配置:
gcloud dataproc clusters create your-cluster-name \ --properties spark:spark.eventLog.enabled=true,spark:spark.eventLog.dir=hdfs:///user/spark/eventlogs开启运行中作业日志优化:Spark History Server默认不会主动扫描未完成的作业日志,需启用
spark.history.fs.inProgressOptimization.enabled参数,让历史服务器定期读取正在写入的日志文件:# 创建集群时配置 gcloud dataproc clusters create your-cluster-name \ --properties spark:spark.history.fs.inProgressOptimization.enabled=true若集群已创建,可通过更新配置并重启历史服务器生效:
gcloud dataproc clusters update your-cluster-name \ --update-properties spark:spark.history.fs.inProgressOptimization.enabled=true验证配置效果:提交运行中的Spark作业后,等待1-2分钟(历史服务器默认扫描间隔为10秒),刷新「incomplete applications」标签页即可看到运行中作业条目。
注意:若使用GCS作为事件日志存储路径,需确保Dataproc集群服务账户拥有该GCS bucket的读写权限,否则历史服务器无法读取日志文件。
内容的提问来源于stack exchange,提问作者Pablo Beltran
相关产品推荐
相关产品推荐

