Dataproc Serverless Spark Batch运行4小时超时,如何延长时限?
Dataproc Serverless Spark Batch作业超时解决方法
问题原因
Dataproc Serverless Spark Batch的默认作业最大运行时长为4小时,当作业运行超过这个时限时,系统会回收相关资源,触发Found 1 invalidated leases和lease grant was revoked的日志,最终终止作业。
延长作业时限的方法
1. gcloud命令行提交时指定超时
提交作业时添加--timeout参数,支持h(小时)、d(天)格式,例如设置12小时超时:
gcloud dataproc batches submit spark \ --region=us-central1 \ --timeout=12h \ --jar=gs://your-bucket/your-job.jar \ -- ... 其他作业参数
最大可设置超时时间为7天(7d)。
2. REST API提交时配置超时
在API请求的JSON体中添加timeout字段,使用ISO 8601格式,例如设置24小时超时:
{ "projectId": "your-project-id", "region": "us-central1", "batch": { "sparkBatch": { "mainClass": "com.example.YourJob", "jarFileUris": ["gs://your-bucket/your-job.jar"] }, "timeout": "PT24H" } }
3. 基础设施即代码工具配置(以Terraform为例)
在google_dataproc_batch资源中设置timeout参数:
resource "google_dataproc_batch" "spark_job" { project = "your-project-id" region = "us-central1" batch_id = "your-batch-id" spark_batch { main_class = "com.example.YourJob" jar_file_uris = ["gs://your-bucket/your-job.jar"] } timeout = "7d" # 最大支持7天 }
注意事项
- 超时上限为7天,若作业需要更长时间执行,建议拆分作业为多个独立的小批次,避免单批次长时间运行带来的资源稳定性问题。
- 检查作业的资源配置(如executor数量、内存、CPU)是否匹配作业负载,资源不足可能导致运行缓慢,间接触发超时。
内容的提问来源于stack exchange,提问作者Uttkarsh Berwal
相关产品推荐
相关产品推荐

