Я запускаю файл Spark JAR с помощью команды spark-submit testmysparkfile.jar после настройки экспорта SPARK_SUBMIT_OPTS = -agentlib: jdwp = transport = dt_socket, server = y, suspend = y, address = 5005;
Код написан на Scala. Ниже приведен сеанс Spark, который я создаю.
val spark = SparkSession
.builder()
.appName("testmysparkfile")
.config("spark.serializer",classOf[KryoSerializer].getName).master("local[*]")
.getOrCreate()
Когда я запускаю JAR, приложение запускается и слушает порт 5005. Теперь, когда я возвращаюсь к своему IntelliJ и пытаюсь запустить «отладку», он отлично запускает отладчик, и на терминал поступает образец вывода. окно, которое прослушивало порт 5005, однако установленная мною точка останова не сработала. Настройки отладчика- Режим отладчика: подключение к удаленной JVM Хост: Localhost Порт: 5005 аргументы командной строки для JVM: -agentlib: jdwp = transport = dt_socket, server = y, suspend = n, address = 5005 Использовать путь к классам модуля:
Вывод с терминала IntelliJ- Подключен к целевой виртуальной машине, адрес: 'localhost: 5005', транспорт: 'сокет' Отключен от целевой виртуальной машины, адрес: 'localhost: 5005', транспорт: 'сокет'
Я следил за примерами, которые показывают, как отлаживать Spark с помощью отладчика, подобного этому: http://www.bigendiandata.com/2016-08-26-How-to-debug-remote-spark-jobs-with-IntelliJ/ Однако это, похоже, не работает, поскольку я не могу достичь каких-либо точек останова.
Постановили: export SPARK_SUBMIT_OPTS = "- Xdebug -Xrunjdwp: transport = dt_socket, server = y, suspend = y, address = 500 5" Используйте это для подключения отладчика вместо jdwp