安裝Eclipse插件
插件地址https://github.com/winghc/hadoop2x-eclipse-plugin,按著其說明編譯得到適合hadoop版本的插件jar包。如hadoop-eclipse-plugin-2.7.3.jar,確認其放在了eclipse的plugins下。
啟動hadoop
通過start-dfs.sh、start-yarn.sh啟動
連接hadoop
打開首選項,找到Hadoop Map/Reduce選項,根據實際情況選擇Hadoop的安裝路徑。
打開Map/Reduce透視圖,在Map/Reduce Locations視圖下創建hadoop連接。
在General選項卡下,Location name可以任意命名,如hadoop273。
Map/Reduce(v2) Master下配置job跟蹤器的ip和端口,要和hadoop的配置項mapreduce.jobtracker.http.address一致,此處按上文《Hadoop2偽分布式安裝部署》的環境配置,host為localhost ,port為50030。
DFS Master配置HDFS配置,該配置要和core-site.xml的fs.defaultFS配置一致,所以host為localhost,port為9000。
如果一切順利,在工程視圖的DFS Locations下樹上可以瀏覽操作HDFS文件了。
創建文件夾
通過工程視圖DFS Locations 右鍵提供的Create new directory在根目錄下創建/user/$username/input待用,本例是/user/rbg/input。注意:該工具創建文件不會自動刷新,需要手動刷新一下才能顯示出來。
該路徑作為下面MapReduce程序的輸入路徑。
在input目錄上右鍵,通過Upload files to DFS將本地某個文件上傳到HDFS中,如選個hadoop的配置文件core-site.xml。
創建MapReduce Project
通過File->New->Project創建一個MapReduce Project,命名WordCount。
新建包org.apache.hadoop.example。
可以通過新建菜單提供的向導來新建Mapper、Reducer、MapReduce Driver三個部件。
也可以將三個部件放在一起,為方便,直接用hadoop自帶的樣例來講解。
在hadoop安裝目錄下/share/hadoop/mapreduce/sources/找到hadoop-mapreduce-examples-2.7.3-sources.jar,解壓,并拷貝WordCount.java到剛新建的包下。
在Eclipse中打開WordCount源代碼,WordCount就是所謂的Mapreduce驅動程序,擁有一個main函數,負責啟動一個mapreduce job。該main函數接收至少兩個參數,最后一個參數代表輸出路徑,前面代表若干個輸入路徑。
在WordCount中聲明了TokenizerMapper和IntSumReducer兩個內部類,分別是一個mapper和一個reducer。mapper分析輸入文本,以單詞為key,1作為value輸出。mapper接收到經過框架分組排序后的key-value,將value相加得到目標單詞的總數,并以單詞為key,總數為value進行輸出。最終得出文本中每個單詞出現的次數。
調試運行
創建WordCount的Java Application調試配置,在程序參數中輸入
-conf /home/rbg/tools/hadoop273/etc/hadoop/core-site.xml input output
-conf 參數是為了告訴程序應用的配置,該參數會被main函數中調用的GenericOptionsParser自動解析。如果不用該配置可以將hadoop配置文件core-site.xml拷貝到工程src下也可以,但是第二種方式不太方便。
input output這兩個目錄自動對應HDFS下的/user/rbg/input和/user/rbg/output。
運行完畢,在output下可以查看運行結果。