Задание Spark теряет исполнителей: ОШИБКА TaskSchedulerImpl: Потерял исполнителя 1… -> ./app.jar: На устройстве не осталось места

#java #apache-spark #amazon-ec2

Вопрос:

Я запускаю как главного, так и 1 рабочего на GPU — сервере в автономном режиме. После отправки задания оно получает и теряет исполнителей 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.
 

Ответ №1:

Из журналов видно, что Spark использует /tmp для управления данными своих исполнителей, и, как следует из сообщения об ошибке: «На устройстве не осталось места», у вас нет места в этом каталоге.

Я предлагаю вам использовать раздел с большим пространством для выполнения задания. Конфигурация, которую вы ищете, — это spark.local.dir. Просто укажите его в другой каталог в своем сообщении.

С уважением.