(1)磨刀不误砍柴工,首先配置调试环境:
zeppelin安装参见:https://blog.csdn.net/dax1n/article/details/57079534
配置远程调试环境:
export ZEPPELIN_JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=11000"
如上代码配置远程debug参数,监听端口11000。
(2)远程调试之小试牛刀
可以将源码下载导入IDE,但是这种方案一般效率较低,最高的方案是使用Maven引入相应Zeppelin依赖搭建本地IDE调试环境。接下来使用IDEA创建一个远程调试的Application,具体请百度。之后启Zeppelin,这边IDE启动Debug即可。
(3)Zeppelin启动之必经之路(ZeppelinServer)
Zeppelin启动远程启动Zeppelin就是调用ZeppelinServer#main函数启动,因此我们可以在main打断点开启Zeppelin的远程调试之旅。
(4)Zeppelin调试向导
Zeppelin通常以便捷的notebook吸引用户,用户借助notebook提交作业到Server,同时协议是借助Websocket协议,通信关键方法如下:
org.apache.zeppelin.socket.NotebookSocket#onWebSocketText
如上方法接受noteboook发来的job,也接受心跳验证notebook的存活状态。关于消息的进一步处理调用如下方法:
org.apache.zeppelin.socket.NotebookServer#onMessage
本文到此,待阅源码有收获之后再回来分享。