(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
本文到此,待閱源碼有收穫之後再回來分享。