Java 如何在调试模式下启动Apache Zeppelin?

Java 如何在调试模式下启动Apache Zeppelin?,java,debugging,intellij-idea,apache-zeppelin,Java,Debugging,Intellij Idea,Apache Zeppelin,我需要在调试模式下启动Zeppelin,以便在Intellij中添加断点来远程调试代码 我该怎么做?没有关于此属性的文档。您可以设置此属性 齐柏林飞艇-env.sh export ZEPPELIN_MEM=“-Xdebug-Xnoagent-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8111” 同样,您也可以为解释器mem执行此操作 唯一的问题是您只能远程调试一个intrepreter进程,因为每个解释器都没有唯一的属性。有关

我需要在调试模式下启动Zeppelin,以便在Intellij中添加断点来远程调试代码


我该怎么做?没有关于此属性的文档。

您可以设置此属性

齐柏林飞艇-env.sh

export ZEPPELIN_MEM=“-Xdebug-Xnoagent-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8111”

同样,您也可以为解释器mem执行此操作


唯一的问题是您只能远程调试一个intrepreter进程,因为每个解释器都没有唯一的属性。

有关调试的详细信息,请参阅。

首先,让我们更新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齐柏林飞艇

转到运行->编辑配置 在IntelliJ IDE中创建新的远程配置:

将IntelliJ配置为在出现异常时停止

转到运行->查看断点 启用“Java异常断点” 选中条件复选框,然后添加以下条件:

!(this instanceof java.lang.ClassNotFoundException || 
  this instanceof java.util.MissingResourceException || 
  this instanceof javax.naming.NoInitialContextException || 
  this instanceof java.lang.NoSuchMethodException)
您现在应该具有如下配置的异常断点:

完全归功于卢西亚诺·雷森德(Luciano Resende)——请参阅此处的完整文章: