Работники Spark не выполняют никакой работы в режиме отладки - PullRequest
0 голосов
/ 25 января 2019

Я столкнулся с очень неожиданной проблемой, когда разработал какое-то приложение на Spark.
Я запустил автономный кластер с одним главным и одним рабочим процессами (./sbin/start-master.sh и ./sbin/start-slave..sh).
Я запускаю свое приложение из SparkLauncher внутри Java-кода, поэтому оно выглядит следующим образом:

new SparkLauncher()
       .setSparkHome("...")
       .setAppName("...")
       .setMaster("spark://admin:7077")
       .setConf("spark.executor.extraJavaOptions", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005")
       .startApplication(new SparkAppStateHandler());

И я заметил, что на самом деле ни одна работа не была запущена.Мой журнал был полон сообщений вроде этого:

WARN  TaskSchedulerImpl:66 - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

Я начал исследовать эту проблему, настроив конфигурацию спарк (изменение размера ОЗУ, выделенного для исполнителей, количество ядер и т. Д.), Но ничего не изменилось.

Затем я удалил одну строку кода в этой конфигурации задания:

.setConf("spark.executor.extraJavaOptions", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005")

И исполнители начали выполнять свою работу мгновенно.
Важно отметить тот факт, что я не запустил какой-либо процесс отладки.поэтому я не приостановил ни одного потока Spark.

Так вы понимаете, почему строка, указывающая на необходимость отладки, не позволяла Spark запускать задание?(AFAIK, просто включающий порт отладки, не должен влиять на процесс во время выполнения, пока не подключен внешний процесс).

Заранее спасибо.

...