前面提到了interpreter是以单独的process启动的,想要debug interpreter,需要设置启动interpreter进程的jvm以debug方式启动,然后让IDE进行remote debug,具体步骤如下:
1) 在bin/interpreter.sh脚本中JAVA_INTP_OPTS变量中加入如下参数:
JAVA_INTP_OPTS+=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=`expr ${PORT} + 1` -Dzeppelin.log.file=${ZEPPELIN_LOGFILE}"
红色部分保证启动interpreter的jvm以debug方式启动,监听的端口号比RemoteInterpreterServer process监听的端口号+1(采用`expr${PORT} + 1`)