在eclipse下遠程調試hadoop2.0

在《在eclipse下編譯hadoop2.0源碼》一文中,我詳細介紹瞭如何在eclipse環境和命令行環境下編譯hadoop2.0源代碼,並簡單介紹瞭如何構建hadoop環境,這篇文章將着重介紹如何在eclipse下調試源代碼。html

在hadoop2.0中,經常使用的模塊有NameNode,DataNode, ResourceManager, NodeManager, FsShell等。這裏咱們以調試FsShell和NameNode模塊爲例。java

FsShell命令調試:eclipse

FsShell命令是hadoop的Client端(任何hadoop集羣上的節點均可以做爲Client端)訪問hadoop集羣的最基本方式。好比 bin/hadoop fs 命令就是客戶端訪問hadoop文件系統的命令集。咱們以bin/hadoop fs -ls / (顯示hadoop文件系統根目錄下的文件)爲例。函數

  • 在Client節點上的hadoop目錄下找到文件bin/hadoop。打開這個腳本,找到以下圖所在位置

  • 改爲以下圖所示:

  • 注意suspent設置爲y表示暫停等待,知道調試器(這裏是用eclipse中的調試)鏈接上才繼續執行, address=8000表示在8000端口監聽請求,也能夠換成其餘不衝突的端口。

由於調試的FsShell須要hadoop運行時環境,因此首先應當啓動hadoop集羣。啓動過程這裏不作介紹,啓動成功之後,咱們在Client端輸入命令, 會顯示以下圖所示的信息:oop

這就表示調試環境已經建好並在8000端口開始監聽調試請求。下面是在eclipse開始調試的步驟spa

  • 打開eclipse並找到hadoop-common(上一篇博客介紹瞭如何將hadoop導入到eclipse中)
  • 在hadoop-common找到文件FsShell.java文件並打開
  • 找到FsShell中的main函數,並在main函數第一行處設置斷點。
  • 右鍵改文件,選擇Debug As -> Debug Configurations... 彈出配置對話框
  • 在左側找到並雙擊Remote Application,這時會新建一個配置頁,主機填Client端對應的IP地址,端口爲8000,以下圖

  • 點擊Debug,如今,你就能夠調試剛剛輸入的命令了,跟蹤該條命令的執行過程。

NameNode調試:命令行

NameNode調試和上面的調試步驟基本相似,下面只作簡單的介紹。3d

  • 調試NameNode須要修改NameNode所在節點的bin/hdfs文件,修改以下:

 

  改成調試

  其中,suspend=n,若是設置爲y,則能夠調試NameNode的啓動過程。htm

  • 啓動NameNode
  • 調試NameNode的入口在hadoop-hdfs項目的NameNode.java文件中,找到main函數,並設置斷點
  • 同FsShell同樣,新建一個Remote Application,填入的主機爲NameNode節點所在的IP,端口爲8000
  • 點擊Debug,調試就能夠開始了。

關於eclipse調試hadoop2.0的內容就介紹到這裏。如今咱們就能夠利用調試跟蹤hadoop的執行流程,更深刻的分析hadoop源代碼。 最後甚至能夠修改hadoop源代碼,加入本身須要的功能。

本文來自博客園,若是查看原文請點擊 http://www.cnblogs.com/meibenjin/p/3175679.html

相關文章
相關標籤/搜索