試了一下,如果Hadoop是本地的話啟動hadoop會報錯。
在調研JobTracker等異常問題時經常需要遠程debug以實現單步跟蹤。相對於打印日志,遠程調試更方面更快捷,信息也更全面。這里列出遠程調試的基本步驟。
1、配置jvm選項啟用遠程debug
Hadoop的所有deamon啟動都是bin/hadoop腳本實現的,該腳本最后一行會執行java命令來啟動JVM進程。因此要啟用遠程debug,只需要修改該腳本最后一行即可。
修改前最后一行如下:
exec "$JAVA" $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
修改之后最后一行如下:
exec "$JAVA" -Xdebug -Xrunjdwp:transport=dt_socket,address=50010,server=y,suspend=n $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
這里新增的jvm參數為:
-Xdebug -Xrunjdwp:transport=dt_socket,address=50010,server=y,suspend=n
這些參數的含義是在端口50070啟動一個server socket並通過Java Debug Wire Protocol (jdwp)傳遞調試信息。suspend=n表示客戶端(eclipse)沒有連上時不需要掛起,即沒有開始調試時該進程照常運行。
需要注意的是這里的端口號一定要是空閑的且對外開放的。通常生產機器只開通了少量端口。
2、配置eclipse來遠程調試
a、啟動eclipse
b、點擊菜單的 Go to Run -> Debug Configurations

c、在配置界面上找到Remote Java Application然后右鍵新建一個

d、配置遠程應用的鏈接信息

這里主要是填好主機名及端口號。
f、最后一步點擊 Apply保持配置然后點擊Debug即可開始遠程調試了

