Hadoop源碼分析四遠(yuǎn)程debug調(diào)試
1、 hadoop遠(yuǎn)程debug
從文檔(3)中可以知道hadoop啟動服務(wù)的時候最終都是通過java命令來啟動的,其本質(zhì)是一個java程序。在研究源碼的時候debug是一種很重要的工具,但是hadoop是編譯好了的代碼,直接在liunx中運行的,無法象普通的程序一樣可以直接在eclipse之類的工具中直接debug運行。
對于上述情況java提供了一種遠(yuǎn)程debug的方式。
這種方式需要在java程序啟動的時候添加以下參數(shù):
-agentlib:jdwp=transport=dt_socket,server=y,address=6603,suspend=y
其中transport是指定雙方的數(shù)據(jù)傳輸方式,server表示是否監(jiān)聽debuger的調(diào)試請求,address是監(jiān)聽端口,suspend是表示是否等待啟動。
所以為了能遠(yuǎn)程debug hadoop,需要修改hadoop的啟動腳本。
推薦修改bin目錄下的hdfs文件進行修改
修改方式如下圖:

如上圖所示,被注釋掉的語句是包含遠(yuǎn)程調(diào)試的參數(shù),未被注釋的是其正常的啟動參數(shù)。在這里修改還有一個好處是可以針對指定的服務(wù)進行遠(yuǎn)程debug設(shè)置。上圖是針對namenode進行遠(yuǎn)程debug設(shè)置。若要對其他的服務(wù)進行遠(yuǎn)程debug,那么只需修改對應(yīng)節(jié)點的hdfs文件中與該服務(wù)名稱對應(yīng)的參數(shù)便可。
修改完成后,使用sbin目錄下的腳本啟動便可。
啟動成功后,便可以使用eclipse等工具進行遠(yuǎn)程調(diào)試。
下面以eclipse為例
首先在eclipse的代碼框中點擊右鍵,在彈出的選項框中選擇debug as,在其彈出的選項框中選擇debug configurations。
打開debug的配置頁面
如下圖:

然后雙擊remote java application(或者點擊右鍵,然后選擇new configuration)
界面如下:

其中,name可以自定義,host需要寫啟動遠(yuǎn)程debug服務(wù)器的地址,prot需要寫上述參數(shù)中的端口。若無誤便可點擊下方的debug按鈕,開始debug。
以上就是Hadoop遠(yuǎn)程debug調(diào)試的詳細(xì)內(nèi)容,本系列下一篇文章傳送門Hadoop源碼分析五hdfs架構(gòu)原理剖析更多關(guān)于Hadoop的資料請持續(xù)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
springbootAOP定義切點獲取/修改請求參數(shù)方式
這篇文章主要介紹了springbootAOP定義切點獲取/修改請求參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
使用SpringCache操作Redis緩存數(shù)據(jù)的示例代碼
SpringCache是一個框架,實現(xiàn)了基于注解的緩存功能,只需要簡單的加一個注解,就能實現(xiàn)緩存功能,本文給大家介紹了如何使用SpringCache操作Redis緩存數(shù)據(jù),文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-01-01
IDEA2021.2配置docker如何將springboot項目打成鏡像一鍵發(fā)布部署
這篇文章主要介紹了IDEA2021.2配置docker如何將springboot項目打成鏡像一鍵發(fā)布部署,本文圖文實例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
劍指Offer之Java算法習(xí)題精講鏈表專項訓(xùn)練
跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化2022-03-03
Java基于jdbc連接mysql數(shù)據(jù)庫操作示例
這篇文章主要介紹了Java基于jdbc連接mysql數(shù)據(jù)庫操作,結(jié)合完整實例形式分析了java使用jdbc連接mysql數(shù)據(jù)庫的具體步驟與相關(guān)注意事項,需要的朋友可以參考下2017-07-07

