通常情況下,我們只是通過已經編譯好的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腳本中的最後一行進行如下改動:
7. 運行: "hadoop-debug namenode -format",這個時候命令會掛起,等待調試器連接9090端口,如:
8. 回到開發端,在eclipse中右鍵選擇NameNode.java->Debug As->Debug Configuration,進行如下配置:
9. 點擊Apply,然後Debug,就可以連接到name node上進行調試了。遠程調試和本地調試區別不大,同樣可以設置斷點等操作。