4

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

我该怎么做呢?没有可用的文档。

4

3 回答 3

3

您可以设置此属性

在 zeppelin-env.sh

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

同样,您可以为解释器内存做

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

于 2015-09-28T17:03:03.640 回答
2

有关调试的详细信息,请参阅如何贡献页面

于 2015-09-29T08:08:54.390 回答
1

首先,让我们更新 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 中创建一个新的远程配置: 截图 1

配置 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

于 2017-01-19T19:45:46.423 回答