Я запускаю приложение PySpark в автономном кластере Spark с Dynami c Распределение ресурсов.
У меня есть ситуация, когда Spark External Shuffle Service может работать на разных портах на разных компьютерах, на которых работает Spark Рабочие. Когда Spark Worker запускается, устанавливается переменная среды SPARK_WORKER_OPTS , которая указывает номер порта, на котором должна быть запущена служба внешнего перемешивания.
Итак, я не могу жестко кодировать значение spark.shuffle.service.port при отправке приложения Spark, поскольку оно может отличаться для разных работников. Я хочу, чтобы это было забрано Исполнителем от Рабочего, на котором он работает.
К сожалению, я не нашел способа включить это. Если при отправке приложения я не устанавливаю значение spark.shuffle.service.port , исполнитель пытается подключиться к внешнему сервису shuffle, работающему через порт 7337, который не работает на некоторых машинах, где порт отличается.
Есть ли способ решить эту проблему?