遠程調試Hadoop

如何遠程調試Hadoop

在調研JobTracker等異常問題時常常須要遠程debug以實現單步跟蹤。相對於打印日誌,遠程調試更方面更快捷,信息也更全面。這裏列出遠程調試的基本步驟。 java

一、配置jvm選項啓用遠程debug eclipse

Hadoop的全部deamon啓動都是bin/hadoop腳本實現的,該腳本最後一行會執行java命令來啓動JVM進程。所以要啓用遠程debug,只須要修改該腳本最後一行便可。 jvm

修改前最後一行以下: socket

exec "$JAVA" $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@" oop

修改以後最後一行以下: 字體

exec "$JAVA" -Xdebug -Xrunjdwp:transport=dt_socket,address=50010,server=y,suspend=n $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@" spa

其中加粗字體部分爲新增的jvm參數。 debug

這些參數的含義是在端口50070啓動一個server socket並經過Java Debug Wire Protocol (jdwp)傳遞調試信息。suspend=n表示客戶端(eclipse)沒有連上時不須要掛起,即沒有開始調試時該進程照常運行。 調試

須要注意的是這裏的端口號必定要是空閒的且對外開放的。一般生產機器只開通了少許端口。 日誌


二、配置eclipse來遠程調試

a、啓動eclipse

b、點擊菜單的 Go to Run -> Debug Configurations


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


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

這裏主要是填好主機名及端口號。


f、最後一步點擊 Apply保持配置而後點擊Debug便可開始遠程調試了

相關文章
相關標籤/搜索