eclipsehadoop源碼
『壹』 如何給eclipse安裝hadoop插件找不到
1、下載Eclipse解壓。
2、把hadoop-eclipse-plugin-1.1.2.jar放到eclipse的plugs目錄下。
我的hadoop集群用的版本:hadoop1.1.2
hadoop0.20以後的版本的安裝目錄下contrib/沒有eclipse的hadoop-*-eclipse-plugin.jar插件,需要自己用ant編譯。
源文件在:hadoop-x.y.z/src/contrib/eclipse-plugin 下,注意:需要下載源目錄的包,如查下載的是bin的壓縮包,裡面是沒有eclipse插件的源文件的。
3、打開Eclipse
window-- Preferences 出現Hadoop Map/Rece
配置Hadoop installation directory:
注意:我的宿主機windows上並沒有安裝hadoop, hadoop安裝在VM中的centos中
在windows下建了一個目錄F:/myHadoop 把centos hadoop安裝根目錄下的jar包拷過來。
4、新建工程:Map/Rece Project
配置hadoop location:
5、刷新DFS Locations 列出HDFS伺服器上的上的目錄:
6、問題:
在Eclipse上可以列出hadoop集群上的目錄,但不能創建文件,上傳文件
原因:windows下Eclipse安裝了hadoop插件,默認使用的是windows當前用戶去操作hadoop,而我的hadoop集群當前的用戶是grid
而Eclipse中hadoop locations 的高級參數配置,是不能修改這個用戶的:
解決方法:
在windows用戶和組的管理中,把當前用戶修改成hadoop組grid用戶。
但我的機器系統是win7家庭版,打不開用戶和組管理:
不能已,用另一種方案:
windows上新建一個grid用戶,然後再打開Eclipse,創建工程,進行以上的配置DFS Loactioins
發現這時,在Eclipse中可以列出目錄,新建文件夾,上傳文件了。( 或者修改hadoop集群上文件夾的許可權,如:bin/hadoop fs -chmod 777 ./in, 下圖第2個文件是修改hadoop集群文件平許可權後上傳的)
『貳』 hadoopeclipse的插件怎麼安裝
1.插件安裝
在$HADOOP_HOME/contrib/eclipse-plugin/文件夾中有個hadoop-eclipse-plugin-0.20.203.0.jar,把這個文件復制到eclipse/plugins(這是eclipse的插件目錄)下面即可。
注意在直接復制時會出錯,主要是缺少jar包。
解決方法:(1)將commons-httpclient-3.0.1.jar,jackson-core-asl-1.0.1.jar,jackson-mapper-asl-1.0.1.jar,commons-configuration-1.6.jar,lcommons-lang-2.4.jar(這幾個jar包在$HADOOP_HOME/lib/下找到)放入hadoop-0.20.203.0-eclipse-plugin的lib下
(2)修改hadoop-0.20.203.0-eclipse-plugin/META-INF/MANIFEST.MF 中的Bundle-ClassPath項
1
Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar
2.環境配置
啟動Eclipse,然後在Window->Preferences->Hadoop Map/Rece中添加Hadoop的安裝目錄
配置hadoop環境:在Window–>Show View中打開Map/Rece Locations,在底部會看到新的選項。然後右鍵–>New Hadoop Location,
Location name是你自己取的名字,我這里用了hadoop,Map/Rece Master這里的host和port對應上面mapred-site.xml中mapred.job.tracker的值,我配置的是localhost和9001;DFS Master對應上面core-site.xml中fs.default.name中的值,我配置的是localhost和9000.
完成後,如果屏幕左上方的DFS Locations中的內容可以正常顯示,說明配置一切成功。
3.運行wordcount
使用Eclipse編寫Hadoop的程序了,按該方式創建File->New->Project->Map/Rece Project.命名為hadoop-test。
將hadoop-0.20.203.0/src/examples/org/apache/hadoop/examples下的wordcount.java復制到當前項目中。
注意:要在src中看到WordCount.java文件,如果已經復制過來還看不到,在hadoop-test上右擊選擇refresh試一試。
另外,直接復制過來的文件,第一行要注釋掉 //package org.apache.hadoop.examples;
在Run configuration/Java Application/WordCount下進行程序參數設置
input為又本地導入HDFS得輸入文件,其中包含兩個文本文件,file01和file02
完成後,使用 Run As/Run on Hadoop運行~~~~
在HDFS系統視圖下可以看到剛才得運行結果
中途碰到得問題:裝得時候不知道怎麼回事,項目側邊欄(Project explorer)看不見了。或者側邊欄是Package explorer,這種情況下是看不見DFS Locations的,應該在菜單欄
Window/Open pespective/<Map/Rece>。然後就能看到HDFS文件系統已經所創建得一些項目。
『叄』 在Ubuntu中,用mvn打包hadoop源代碼是報錯,咋回事
將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源碼根目錄
『肆』 如何通過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即可。