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

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

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

其中,name可以自定義,host需要寫啟動(dòng)遠(yuǎn)程debug服務(wù)器的地址,prot需要寫上述參數(shù)中的端口。若無(wú)誤便可點(diǎn)擊下方的debug按鈕,開始debug。
以上就是Hadoop遠(yuǎn)程debug調(diào)試的詳細(xì)內(nèi)容,本系列下一篇文章傳送門Hadoop源碼分析五hdfs架構(gòu)原理剖析更多關(guān)于Hadoop的資料請(qǐng)持續(xù)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MyBatis查詢時(shí)屬性名和字段名不一致問(wèn)題的解決方法
這篇文章主要給大家介紹了關(guān)于MyBatis查詢時(shí)屬性名和字段名不一致問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Jmeter配置代理實(shí)現(xiàn)錄制過(guò)程圖解
這篇文章主要介紹了Jmeter配置代理實(shí)現(xiàn)錄制過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看
這篇文章主要介紹了springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
SpringMVC的@InitBinder參數(shù)轉(zhuǎn)換代碼實(shí)例
這篇文章主要介紹了SpringMVC的@InitBinder參數(shù)轉(zhuǎn)換代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Java中BigDecimal除法使用不當(dāng)導(dǎo)致精度問(wèn)題
本文主要介紹了Java中BigDecimal除法使用不當(dāng)導(dǎo)致精度問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11

