歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 如何遠程調試Hadoop代碼

如何遠程調試Hadoop代碼

日期:2017/2/28 16:05:10   编辑:Linux教程

通常情況下,我們只是通過已經編譯好的Hadoop jar包來運行Hadoop。如果我們更改了Hadoop的源碼,希望對更改的代碼進行遠程調試,可以通過下面的步驟來進行:

1. 下載從Apache社區或者Cloudera網站上下載Hadoop的壓縮包

2. 在eclipse中創建一個java工程,並將該壓縮包導入其中,建議在linux開發環境下完成

3. 對Hadoop代碼更改後,在linux命令行下運行: "ant jar",重新生成新的jar包

4. 將更改後的Hadoop部署到遠程的linux server上,假設為一個name node,兩個data node的場景,並且要調試name node(IP是10.10.10.2)

5. 在name node的Hadoop bin目錄下運行: "cp hadoop hadoop-debug",復制一個新的腳本

6. 在hadoop-debug腳本中的最後一行進行如下改動:

  1. #exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
  2. exec "$JAVA" -Xdebug -Xrunjdwp:transport=dt_socket,address=9090,server=y,suspend=y $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"

7. 運行: "hadoop-debug namenode -format",這個時候命令會掛起,等待調試器連接9090端口,如:

  1. #./hadoop-debug namenode -format
  2. Listening for transport dt_socket at address: 9090

8. 回到開發端,在eclipse中右鍵選擇NameNode.java->Debug As->Debug Configuration,進行如下配置:

9. 點擊Apply,然後Debug,就可以連接到name node上進行調試了。遠程調試和本地調試區別不大,同樣可以設置斷點等操作。

Copyright © Linux教程網 All Rights Reserved