我需要在调试模式下启动Zeppelin,以便在Intellij中添加断点来远程调试代码。
我该怎么做?没有关于此的文档。
答案 0 :(得分:3)
您可以设置此属性
在zeppelin-env.sh
导出ZEPPELIN_MEM =" -Xdebug -Xnoagent -Xrunjdwp:transport = dt_socket,server = y,suspend = n,address = 8111"
同样,你可以为interpreter-mem
做只有catch你可以远程调试一个intrepreter进程,因为每个解释器没有唯一的属性。
答案 1 :(得分:2)
有关调试的详细信息,请参阅How to contribute page。
答案 2 :(得分: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 envrionment变量。 但正如Ram已经提到的那样,由于端口冲突,它只能用于一个解释器。
配置IntelliJ IDE以连接和调试远程Apache Zeppelin
转到“运行” - >“编辑配置” 在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 - 请参阅此处的完整文章: http://lresende.blogspot.com/2016/08/launching-apache-zeppelin-in-debug-mode.html