我需要在调试模式下启动 Zeppelin,以便在 Intellij 中添加断点以远程调试代码。
我该怎么做呢?没有可用的文档。
我需要在调试模式下启动 Zeppelin,以便在 Intellij 中添加断点以远程调试代码。
我该怎么做呢?没有可用的文档。
您可以设置此属性
在 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 Enable 'Java Exception Breakpoints' 选择条件复选框,并添加以下条件:
!(this instanceof java.lang.ClassNotFoundException ||
this instanceof java.util.MissingResourceException ||
this instanceof javax.naming.NoInitialContextException ||
this instanceof java.lang.NoSuchMethodException)
完全归功于 Luciano Resende - 请参阅此处的完整文章:http: //lresende.blogspot.com/2016/08/launching-apache-zeppelin-in-debug-mode.html