我正在运行一个非常长时间运行的批处理作业。它会产生很多OOM异常。为了最小化这个问题,添加了 checkpoints()
我应该在哪里设置检查点目录?该位置必须可供所有执行者访问。目前,我正在使用一个桶。根据日志文件,我可以看到我的代码已经通过了几个 checkpoint() 调用,但是存储桶是空的
sparkContext.setCheckpointDir("gs://myBucket/checkpointDir/")
根据 CPU 利用率和日志消息,看起来我的工作仍在运行并取得进展。知道检查点数据的火花在哪里吗?
2022-01-22 18:38:06 WARN DAGScheduler:69 - Broadcasting large task binary with size 4.9 MiB
2022-01-22 18:47:23 WARN BlockManagerMasterEndpoint:69 - No more replicas available for broadcast_50_piece0 !
2022-01-22 18:47:23 WARN BlockManagerMaster:90 - Failed to remove broadcast 50 with removeFromMaster = true - org.apache.spark.SparkException: Could not find BlockManagerEndpoint1.
at org.apache.spark.rpc.netty.Dispatcher.postMessage(Dispatcher.scala:176)
亲切的问候
安迪