Как запустить Apache Zepelin в режиме отладки?
Мне нужно запустить Zeppelin в режиме отладки, чтобы добавить точки прерывания в Intellij для удаленной отладки кода.
Как мне это сделать? Нет документации по этому вопросу.
3 ответа
Вы можете установить это свойство
В zeppelin-env.sh
export ZEPPELIN_MEM = "- Xdebug -Xnoagent -Xrunjdwp: transport = dt_socket, server = y, suspend = n, address = 8111"
Точно так же вы можете сделать для интерпретатора мем
Единственный улов - вы можете удаленно отлаживать только один процесс интерпретатора, поскольку для каждого интерпретатора нет уникальных свойств.
Сначала давайте обновим zeppelin-env.sh, чтобы правильно настроить конфигурацию, чтобы JVM запускалась в режиме отладки.
Отредактируйте $ZEPPELIN_HOME/conf/zeppelin-env.sh Добавьте следующее в файл:
export ZEPPELIN_MEM="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8111"
Теперь, когда мы обновили zeppelin-env.sh, при следующем запуске Apache Zeppelin он будет прослушивать удаленный отладчик на порту 8111.
Чтобы отладить интерпретатор, обновите вместо него переменную окружения ZEPPELIN_INTP_MEM. Но, как уже упоминал Ram, он будет работать только для одного переводчика из-за конфликта портов.
Настройте IntelliJ IDE для подключения и отладки удаленного Apache Zeppelin
Перейдите в Run->Edit Configuration. Создайте новую удаленную конфигурацию в вашей IntelliJ IDE:
Настройте IntelliJ для остановки на исключениях
Перейдите в Run->View Breakpoints Включить "Точки останова Java Exception" Установите флажок условия и добавьте следующее условие:
!(this instanceof java.lang.ClassNotFoundException ||
this instanceof java.util.MissingResourceException ||
this instanceof javax.naming.NoInitialContextException ||
this instanceof java.lang.NoSuchMethodException)
Теперь у вас должны быть настроены точки останова исключения:
Полная заслуга принадлежит Лучано Резенди - см. Полную статью здесь: http://lresende.blogspot.com/2016/08/launching-apache-zeppelin-in-debug-mode.html