linux eclipse 关联源码,获取Hadoop的源码和通过Eclipse关联Hadoop的源码
一、獲取Hadoop的源碼
首先通過官網下載hadoop-2.5.2-src.tar.gz的軟件包,下載好之后解壓發現出現了一些錯誤,無法解壓縮, 因此有部分源碼我們無法解壓 ,因此在這里我講述一下如何通過maven來獲取完整的源碼:
(1)通過命令行進入hadoop-2.4.0-src\hadoop-maven-plugins,運行mvn install
D:\hadoop2\hadoop-2.4.0-src\hadoop-maven-plugins> mvn install
此處等待編譯成功
(2)運行,在D:\hadoop2\hadoop-2.4.0-src目錄下執行:
執行如下命令:mvn eclipse:eclipse -DskipTests
這時候,我們已經把源碼給下載下來了。這時候,我們會看到文件會明顯增大。
二、eclipse關聯hadoop的源碼
通過eclipse中的Import將源碼導入到eclipse中,具體操作:
(1)File--->Import
點擊Next,進入下圖所示
此時需要注意的是pom.xml可能會導致導入的工程文件顯示錯誤,因此需要將該文件刪除。最后導入源碼之后的結果如下所示:
三、導入源碼后,仍然出現一些錯誤,下面將錯誤列舉一下
錯誤1:hadoop-streaming上出現感嘆號:如下圖所示:
該錯誤的解決辦法:在該工程上選擇右鍵---->Properties ,左側欄選擇Java Build Path,然后右邊選擇Source標簽頁,注意出錯的那個路徑(先不要刪除)。然后右邊點擊“Link Source按鈕”,選擇被鏈接的目錄為“/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/conf”;點擊finish即可。最后刪除remove 那個出錯的路徑。
錯誤2:The type org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth cannot be resolved
針對這一類錯誤就是缺少對應的.java源文件,解決辦法是網上下載,并放到對應的目錄下面即可。下載java源文件的網站是:
http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-yarn-server-applicationhistoryservice/2.5.2/org/apache/hadoop/yarn/server/applicationhistoryservice/records/impl/pb/ApplicationAttemptStartDataPBImpl.java#ApplicationAttemptStartDataPBImpl
需要什么樣的源文件,可以在該網站檢索下載即可。
四、閱讀hadoop源碼的方法
其中比較常用的
Open Call Hierarchy:
用Open Call Hierarchy可以查看方法的調用層次。如果想知道一個方法在別的什么地方被調用了,這個功能就很好用了,實際中也很常用,比如要重構一個方法時,想 知道他對其它什么地方可能有影響,就可以用這個功能。在方法名上點擊右鍵,選擇Open Type Hierarchy即可,快捷鍵是Ctrl+Alt+H。可以在Call Hierarchy窗口看到方法的調用層次的導航。
Open Type Hierarchy:
用Open Type Hierarchy可以查看類的繼承關系,可以在Hierarchy窗口看到繼承層次的導航。在方法或類名上點擊右鍵,選擇Open Type Hierarchy即可,快捷鍵是F4。
1、 用Open Declaration可以查看類、方法和變量的聲明。這是最常用的一個功能了,如果在要追蹤的對象上點右鍵,選擇Open Declaration,可以跳轉到其聲明的地方。這個功能有個快捷鍵是F3,當然你也可以按住Ctrl鍵,鼠標移過去會變成一個小手,單擊就可以了。
2、用Open Super Implemention可以查看當前方法在父類中的實現或接口中的聲明(前提是該方法是對父類或接口中相應方法的重寫),在方法名上點擊右鍵,選擇Open Super Implemention即可。
3、 最后介紹一個超級好用的功能,叫Open Implemention,就是可以跳轉到某個調用的方法的具體實現的地方去。為什么說這個是超級好用呢?用過Spring的人都知道,現在都提倡面向接 口編程,所以,如果使用Open Declaration來追蹤一個方法的調用的話,只會看到該方法在接口中的聲明,而看不該方法在具體類中的實現,當然,可以使用Call Hierarchy先得到該方法的整個的調用層次,然后再導航到具體的實現處,但操作有些麻煩了。有了Open Implemention,就可以直接看到實現的代碼了,在方法名上點擊右鍵,選擇Open Implemention就可以了!只是要享受這個功能,可安裝一個Eclipse插件,這里就不在詳細介紹了。
總結
以上是生活随笔為你收集整理的linux eclipse 关联源码,获取Hadoop的源码和通过Eclipse关联Hadoop的源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 彻底解决ubuntu循环登录和显卡驱动问
- 下一篇: linux 其他常用命令