【问题标题】:Spark job loses executors: ERROR TaskSchedulerImpl: Lost executor 1... -> ./app.jar: No space left on deviceSpark 作业丢失执行程序:错误 TaskSchedulerImpl:丢失执行程序 1... -> ./app.jar:设备上没有剩余空间
【发布时间】:2021-06-26 06:39:51
【问题描述】:

我在 GPU 服务器上以独立模式同时运行主服务器和 1 个工作程序。提交作业后,它会在超时之前检索并丢失执行器 X 次。

火花提交

spark-submit                                            \
--conf spark.plugins=com.nvidia.spark.SQLPlugin         \
--conf spark.rapids.memory.gpu.pooling.enabled=false    \
--conf spark.executor.resource.gpu.amount=1             \
--conf spark.task.resource.gpu.amount=1                 \
--jars ${SPARK_CUDF_JAR},${SPARK_RAPIDS_PLUGIN_JAR}.    \
--master spark://<ip>:7077                              \
--driver-memory 2g                                      \
--executor-memory 10g                                   \
--conf spark.cores.max=1                                \
--class com.spark.examples.Class                        \
app.jar                                                 \
-dataPath=spark/data.csv                                \
-format=csv                                             \
-numWorkers=1                                           \
-treeMethod=gpu_hist                                    \
-numRound=100                                           \
-maxDepth=8

日志

StandaloneSchedulerBackend: Granted executor ID app on hostPort <ip:port> with 1 core(s), 10.0 GiB RAM
21/03/30 05:29:29 INFO StandaloneAppClient$ClientEndpoint: Executor updated: app- is now RUNNING
21/03/30 05:29:31 INFO CoarseGrainedSchedulerBackend$DriverEndpoint: Registered executor NettyRpcEndpointRef(spark-client://Executor) (<ip:port>) with ID 2,  ResourceProfileId 0
21/03/30 05:29:31 INFO BlockManagerMasterEndpoint: Registering block manager (<ip:port>)with 5.8 GiB RAM, BlockManagerId(2, <ip>, 45302, None)
21/03/30 05:29:37 ERROR TaskSchedulerImpl: Lost executor 2 <ip>: Unable to create executor due to /tmp/spark-d0f43315/executor-ec041ccd/spark-295e56db/-716_cache -> ./app.jar: No space left on device
21/03/30 05:29:37 INFO DAGScheduler: Executor lost: 2 (epoch 2)

规格

我使用的是 AWS EC2 G4dn 机器。

GPU: TU104GL [Tesla T4]   
15109MiB  
Driver Version: 460.32.03  
CUDA Version: 11.2

1 worker: 1 core, 10GB of memory.

【问题讨论】:

    标签: java apache-spark amazon-ec2


    【解决方案1】:

    从日志来看,Spark 似乎正在使用 /tmp 来管理他的执行程序数据,并且错误消息暗示:“设备上没有剩余空间”,您在该目录上没有空间。

    我的建议是您使用具有更多空间的分区来执行作业。您要查找的配置是 spark.local.dir。只需将其指向提交中的另一个目录即可。

    最好的问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      相关资源
      最近更新 更多