hadoop源碼導入
Ⅰ hadoop eclipse 怎麼創建 project
1. 安裝環境介紹如下:
系統:Ubuntu14.04
Hadoop版本:hadoop-2.5.0(點擊下載)
java版本:openjdk-1.7.0_55
Eclipse版本:Release 4.4.0 (點擊下載)
2. 把下載Hadoop源碼包 hadoop-2.5.0-src.tar.gz 解壓到工作目錄(本文為/home/song),
得到 hadoop-2.5.0-src 文件夾。
3. 安裝Maven,命令如下:
$ sudo apt-get install maven
4. 安裝Google開源的序列化框架 Protocol Buffers。
1) 下載 protobuf-2.5.0.tar.gz(點擊下載),然後解壓得到 protobuf-2.5.0 文件夾。
2) 進入protobuf-2.5.0,輸入下屬命令:
$ ./configure
遇到如下錯誤:
分析:此屬於Ubuntu的常見錯誤,可以把常用的庫全部下載,命令如下:
$ sudo apt-get install build-essential
然後再輸入 $ ./configure 命令即可。
3) 順序執行下面三個命令。
$ make
$ make check
$ sudo make install
4) 查看Protocol版本號,檢查是否安裝成功。
$ protoc --version
遇到如下錯誤,如下:
分析知是因為系統找不到lib庫,修改 /etc/ld.so.conf 文件,添加 /usr/local/lib 。如下:
$ sudo gedit /etc/ld.so.conf
內容:include /etc/ld.so.conf.d/*.conf /usr/local/lib
執行下述命令更新庫文件路徑,然後就能通過 $ protoc --version 命令查看版本號。
$ sudo ldconfig
5. 編譯Hadoop源碼生成Jar包,無需編譯native code、測試用例和生成文檔,在/home/song/adoop-2.5.0-src目錄下,輸入下述命令:
$ mvn package -Pdist -DskipTests -Dtar
編譯成功後,輸出信息如下:
6. 生成Eclipse工程文件,命令如下:
$ cd hadoop-maven-plugins
$ mvn install
$ cd hadoop-2.5.0-src
$ mvn eclipse:eclipse -DskipTests
成功後的輸出信息如下圖:
7. 在Eclipse中導入源代碼:」File「 >> "Import" >> "Existing Projects into Workspace",選擇hadoop-2.5.0-src,然後確認。
如上圖所示,導入後遇到錯誤,共有59個錯誤,但總體上分為3類。解決方法如下:
錯誤1: org.apache.hadoop.ipc.protobuf.× 無法解析
解決方法如下,依次執行下述命令。
$ cd hadoop-2.5.0-src/hadoop-common-project/hadoop-common/src/test/proto //注釋:進入該目錄
$ protoc --java_out=../java *.proto
最後,刷新Eclipse中的所有工程。至此,只剩下 6 個錯誤。
錯誤2:AvroRecord cannot be resolved to a type TestAvroSerialization.java
解決方法如下:
首先,下載 avro-tools-1.7.4.jar(點擊下載)。存放於 hadoop-2.5.0-src 目錄中。
然後執行下述命令:
$ cd hadoop-2.5.0-src/hadoop-common-project/hadoop-common/src/test/avro
$ java -jar ~/hadoop-2.5.0-src/avro-tools-1.7.4.jar compile schema avroRecord.avsc ../java
最後,刷新Eclipse工程。只剩下 3個錯誤。
錯誤3: Project 'hadoop-streaming' is missing required source ... Build Path Problem
解決方法如下:
右鍵 hadoop-streaming 項目->properties->左邊Java Build Path->Source->選定錯誤項->右邊Remove,如下圖所示。
至此,在Eclipse中創建Hadoop工程完成。
Ⅱ 如何通過eclipse查看,閱讀hadoop2.4源碼
1.導入查看hadoop源碼
(1)選擇Existing Projects into Workspace
(2)選擇源碼路徑
(3)查看源碼
這樣我們就完成了全部的內容。
2.閱讀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插件,這里就不在詳細介紹了。
Ⅲ hadoop項目怎麼導入eclipse
eclipse 導入hadoop 有三種方式,
1.直接找到 hadoop svn 資源庫 在資源庫中下
2.下載 hadoop 原碼文件解壓開之後 使用 maven 導入 (因為 hadoop 項目本省是使用maven 管理的)
3. 下載 hadoop maven原碼,將maven功能轉換成 eclipse 項目 ,再在eclipse 導入。
Ⅳ maven怎麼導入hadoop依賴包
如果你下載的是hadoop發行包,不需要的。如採用mavan管理的項目一般在項目的根目錄下都有一個pom.xml文件,如果沒有這個文件一般就不是用maven來管理的。果你下載了只是hadoop源碼,而且mavan源碼是用maven管理的需要用maven編譯。
Ⅳ 如何將hadoop源碼導入intellj idea
(1)准備工作 1) 安裝JDK 6或者JDK 7 2) 安裝scala 2.10.x (注意版本) 2)下載Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1為例說明,不同版本,界面布局可能不同)
Ⅵ 如何在eclipse里方便的讀hadoop源碼
導入查看hadoop源碼(1)選擇Existing Projects into Workspace (2)選擇源碼路徑 (3)查看源碼 這樣就完成了全部的內容。
閱讀hadoop源碼其中比較常用的Open Call Hierarchy:用Open Call Hierarchy可以查看方法的調用層次。
Ⅶ 你好,我編譯hadoop2.4源碼,成功之後導入eclipse中,但是怎麼還是有報錯,缺少包這類的問題呢
你把hadoop安裝目錄下的各個share目錄下的lib下的jar包導入項目,那些是hadoop依賴的jar包
Ⅷ hadoop yarn源碼怎麼進行修改
第一個階段:學習hadoop基本使用和基本原理,從應用角度對hadoop進行了解和學習
這是第一個階段,你開始嘗試使用hadoop,從應用層面,對hadoop有一定了解,比如你可以使用hadoop shell對hdfs進行操作,使用hdfs API編寫一些程序上傳,下載文件;使用MapRece API編寫一個數據處理程序。一旦你對hadoop的基本使用方法比較熟悉了,接下來可以嘗試了解它的內部原理,注意,不需要通過閱讀源代碼了解內部原理,只需看一些博客,書籍,比如《Hadoop權威指南》,對於HDFS而言,你應該知道它的基本架構以及各個模塊的功能;對於MapRece而言,你應該知道其具體的工作流程,知道partition,shuffle,sort等工作原理,可以自己在紙上完整個畫完maprece的流程,越詳細越好。
在這個階段,建議你多看一些知名博客,多讀讀《hadoop權威指南》(可選擇性看相關的幾章)。如果你有實際項目驅動,那是再好不過了,理論聯系實際是最好的hadoop學習方法;如果你沒有項目驅動,那建議你不要自己一個人悶頭學,多跟別人交流,多主動給別人講講,最好的學習方式還是「講給別人聽」。
============
第二個階段:從無到入門,開始閱讀hadoop源代碼
這個階段是最困苦和漫長的,尤其對於那些沒有任何分布式經驗的人。 很多人這個階段沒有走完,就放棄了,最後停留在hadoop應用層面。
這個階段,第一件要做的事情是,選擇一個hadoop組件。如果你對分布式存儲感興趣,那麼你可以選擇HDFS,如果你讀分布式計算感興趣,你可以選擇MapRece,如果你對資源管理系統感興趣,你可以選擇YARN。
選擇好系統後,接下來的經歷是最困苦的。當你把hadoop源代碼導入eclipse或intellij idea,沏上一杯茶,開始准備優哉游哉地看hadoop源代碼時,你懵逼了:你展開那數不盡的package和class,覺得無從下手,好不容易找到了入口點,然後你屁顛屁顛地通過eclipse的查找引用功能,順著類的調用關系一層層找下去,最後迷失在了代碼的海洋中,如同你在不盡的壓棧,最後棧溢出了,你忘記在最初的位置。很多人經歷過上面的過程,最後沒有順利逃出來,而放棄。
如果你正在經歷這個過程,我的經驗如下:首先,你要摸清hadoop的代碼模塊,知道client,master,slave各自對應的模塊(hadoop中核心系統都是master/slave架構,非常類似),並在閱讀源代碼過程中,時刻謹記你當前閱讀的代碼屬於哪一個模塊,會在哪個組件中執行;之後你需要摸清各個組件的交互協議,也就是分布式中的RPC,這是hadoop自己實現的,你需要對hadoop RPC的使用方式有所了解,然後看各模塊間的RPC protocol,到此,你把握了系統的骨架,這是接下來閱讀源代碼的基礎;接著,你要選擇一個模塊開始閱讀,我一般會選擇Client,這個模塊相對簡單些,會給自己增加信心,為了在閱讀代碼過程中,不至於迷失自己,建議在紙上畫出類的調用關系,邊看邊畫,我記得我閱讀hadoop源代碼時,花了一疊紙。注意,看源代碼過程中,很容易煩躁不安,建議經常起來走走,不要把自己逼得太緊。
在這個階段,建議大家多看一些源代碼分析博客和書籍,比如《Hadoop技術內幕》系列叢書(軒相關網站:Hadoop技術內幕)就是最好的參考資料。藉助這些博客和書籍,你可以在前人的幫助下,更快地學習hadoop源代碼,節省大量時間,注意,目前博客和書籍很多,建議大家廣泛收集資料,找出最適合自己的參考資料。
這個階段最終達到的目的,是對hadoop源代碼整體架構和局部的很多細節,有了一定的了解。比如你知道MapRece Scheler是怎樣實現的,MapRece shuffle過程中,map端做了哪些事情,rece端做了哪些事情,是如何實現的,等等。這個階段完成後,當你遇到問題或者困惑點時,可以迅速地在Hadoop源代碼中定位相關的類和具體的函數,通過閱讀源代碼解決問題,這時候,hadoop源代碼變成了你解決問題的參考書。
============
第三個階段:根據需求,修改源代碼。
這個階段,是驗證你閱讀源代碼成效的時候。你根據leader給你的需求,修改相關代碼完成功能模塊的開發。在修改源代碼過程中,你發現之前閱讀源代碼仍過於粗糙,這時候你再進一步深入閱讀相關代碼,彌補第二個階段中薄弱的部分。當然,很多人不需要經歷第三個階段,僅僅第二階段就夠了:一來能夠通過閱讀代碼解決自己長久以來的技術困惑,滿足自己的好奇心,二來從根源上解決解決自己遇到的各種問題。 這個階段,沒有太多的參考書籍或者博客,多跟周圍的同事交流,通過代碼review和測試,證明自己的正確性。
============
閱讀hadoop源代碼的目的不一定非是工作的需要,你可以把他看成一種修養,通過閱讀hadoop源代碼,加深自己對分布式系統的理解,培養自己踏實做事的心態。
Ⅸ 用maven導入hadoop源碼到eclipse中報異常
將hadoop源碼解壓到一個目錄,注意目錄層次不要太深,否則可能無法解壓。
進入hadoop-maven-plugins文件夾,執行 mvn install
返回源碼根目錄,執行 mvn eclipse:eclipse –DskipTests
eclipse在任意目錄創建新的WorkSpace
eclipse設置Maven:window->preference->maven->{Installations...;user Settings:maven\conf\settings.xml}
eclipse:File->inport->Existing Projects into WorkSpace->Hadoop源碼根目錄