Eclipse搭建hadoop開發(fā)環(huán)境
前面已經(jīng)搭建了一個偽分布模式的Hadoop運行環(huán)境。絕大多數(shù)同學都習慣在Eclipse中做Java開發(fā),本片主要講的是如何搭建一個基于Eclipse IDE的Hadoop開發(fā)環(huán)境。
閑話少說,走起!
一、JDK安裝配置
(一)為什么要安裝JDK
由于Eclipse 是基于 Java 開發(fā)的一個可擴展的開發(fā)平臺,所以在安裝 Eclipse 前需要確保你的電腦已經(jīng)成功安裝了JDK。
(二)如何安裝配置JDK
1、下載并解壓JDK
首先需要注意的是下載的jdk的位數(shù)需要與Windows系統(tǒng)位數(shù)一致,課程中我們使用的是64位Windows系統(tǒng),所以我們需要下載安裝64位的jdk。
jdk的下載、安裝還是比較簡單的,所以這里就不再多講,相信大家參照本任務(wù)視頻內(nèi)容可以輕松搞定。下面我們重點來配置JDK的環(huán)境變量。
2、配置JDK的環(huán)境變量
(1)點擊“計算機”,然后“右鍵”——“屬性”——“高級系統(tǒng)設(shè)置”——“環(huán)境變量”;
(2)配置系統(tǒng)變量JAVA_HOME,即配置JDK的安裝目錄。
(3)配置系統(tǒng)變量Path,即配置JDK安裝目錄的bin目錄。
3、驗證JDK是否安裝成功
java -version
二、安裝部署Eclipse開發(fā)環(huán)境
(一)下載Eclipse
大家可以通過官網(wǎng)下載對應(yīng)版本的Eclipse,也可以直接點擊下載獲取Eclipse的安裝包。
(二)安裝Eclipse
(1)雙擊Eclipse安裝包,然后選擇“Java Developers”,滿足基本的java開發(fā)即可。
(2)在界面選擇Eclipse的安裝路徑,然后點擊“INSTALL”即可。
(3)在界面點擊“LAUNCH”,然后就正式開始安裝。
(4)在如下界面選擇項目的工作空間,可以使用默認的路徑和工作空間,也可以選擇其他工作空間。勾選“Use this as the default and do not ask again”,然后點擊“OK”即可。
(三)創(chuàng)建java項目,驗證Eclipse開發(fā)環(huán)境是否部署成功
(1)創(chuàng)建一個HelloWorld的項目。
(2)在項目下創(chuàng)建一個包com.dajiangtai.java。
(3)在包中創(chuàng)建一個類HelloWorld。
(4)在類中編寫代碼并運行,如果能正確輸出結(jié)果則表明Eclipse開發(fā)環(huán)境已經(jīng)搭建成功,接下來開發(fā)者就可以正常開發(fā)普通的java項目了。
三、構(gòu)建MapReduce項目
在創(chuàng)建項目的時候,我們發(fā)現(xiàn)不能直接通過勾選MapReduce項目來創(chuàng)建MapReduce項目,因為沒有對應(yīng)的選擇,這里有兩種解決方法:
方法一:通過構(gòu)建普通的java項目,然后導(dǎo)入MapReduce相關(guān)的依賴包即可,但是需要導(dǎo)入哪些包,怎么導(dǎo)入呢?這樣操作就有點麻煩了。
方法二:通過安裝對應(yīng)版本的Hadoop-Eclipse插件,即可顯示對應(yīng)的MapReduce項目選項。然后就可以像創(chuàng)建普通的java項目一樣創(chuàng)建MapReduce項目了。
這里我們重點介紹方法二的實現(xiàn)。
(一)Hadoop-Eclipse插件的安裝配置
(1)點擊下載對應(yīng)版本的Hadoop-Eclipse插件
(2)將插件放到Eclipse安裝目錄下的dropins目錄中
(3)然后重啟Eclipse
(4)創(chuàng)建MapReduce項目
如果插件安裝成功,那么在新建項目選擇時就會顯示MapReduce項目。如下圖所示:
(5)創(chuàng)建一個WordCount的項目,然后配置Hadoop安裝目錄。因為Hadoop-Eclipse插件一邊連接著Eclipse,另一邊連接著Hadoop,所以還要在Eclipse中對Hadoop進行相關(guān)的配置。
(6)配置Hadoop安裝目錄。
需要把下載到本地的hadoop安裝包解壓(就是提前下載到本地,上傳到Linux虛擬機上的Hadoop安裝包,因為Hadoop安裝包是不分Linux或windows操作系統(tǒng)的)。然后配置Hadoop安裝路徑即可。然后點擊“Apply”和“OK”。
注意:指定路徑指定的是hadoop解壓之后的那個文件夾的位置。而不是其他。
(7)在跳轉(zhuǎn)的如下界面中點擊“Finish”即可。
(8)在跳轉(zhuǎn)的如下界面中點擊“Yes”即可。
(二)Hadoop-Eclipse插件的作用
Hadoop-Eclipse插件安裝完成之后,更能直觀的感受到插件安裝前后的區(qū)別,這也是為什么把插件的作用放在插件安裝之后解釋的一個原因。
(1)在Eclipse中顯示DFS Locations
如果以上配置都成功之后,那么在Project Explorer就會多了一個DFS Locations.窗口。這是安裝Hadoop-Eclipse的第一個作用。DFS Locations的作用是在Eclipse中顯示HDFS文件系統(tǒng)的列表,但是由于還需要啟動Hadoop集群,并進行相關(guān)連接的配置,比較麻煩且容易出錯,且實際工作中也不使用。所以這里暫時可不用處理。
如果想嘗試配置可參考“Eclipse中配置DFS Locations”對應(yīng)的文檔。
(2)項目自動導(dǎo)入MapReduce相關(guān)的依賴包
安裝完Hadoop-Eclipse插件之后,創(chuàng)建的MapReduce項目會自動導(dǎo)入hadoop相關(guān)的依賴包,而無需手動創(chuàng)建。(大家可以和創(chuàng)建的java項目引入的包做個對比)
(三)創(chuàng)建一個WordCount類,驗證Eclipse是否可以成功開發(fā)MapReduce項目
(1)WordCount代碼可以直接從官網(wǎng)上下載
http://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Example:_WordCount_v1.0
(2)準備輸入數(shù)據(jù)源(自己可以創(chuàng)建一個文件,然后隨便寫幾條數(shù)據(jù)),并指定輸入輸出路徑。
注意:一定要保證輸入路徑存在且正確,輸出路徑不能提前存在,否則代碼運行將會報對應(yīng)的錯誤,然后運行代碼。(具體操作可參照本任務(wù)對應(yīng)的視頻內(nèi)容)
(3)代碼運行常見錯誤及解決方法
1)報log4j問題
只需要在src中導(dǎo)入log4j文件即可,下載log4j文件。
2)然后再運行報如下錯誤:
錯誤原因:hadoop環(huán)境變量沒有配置或配置有問。
解決辦法:只需要配置并檢查HADOOP_HOME和Path變量即可。如下所示:
3)重啟Eclipse,重新運行之后又報如下錯誤:
錯誤原因:本地Hadoop運行目錄的bin目錄下中沒有winutils.exe或者32位/64位版本不匹配
解決辦法:下載相應(yīng)的winutils.exe和hadoop.dll放到Hadoop運行目錄的bin文件夾下,注意選擇正確的32位/64位版本把對應(yīng)版本的那兩個文件放到hadoop安裝目錄的bin目錄下即可。
可點擊下載和Hadoop2.6.0對應(yīng)的64位的winutils.exe和hadoop.dll,在下載的包的子目錄下即可找到winutils.exe和hadoop.dll這兩個文件。
然后重新Eclipse并運行WordCount,發(fā)現(xiàn)就沒有問題了。(包括前邊報的空指針異常也一并解決了);
4)有時候還會出現(xiàn)一些其他問題:
解決方法:把winutils.exe和hadoop.dll這兩個文件上傳到C:\Windows\System32目錄下,重新運行代碼即可。
到此為止,Eclipse開發(fā)MapReduce項目就部署成功,接下來,大家就可以盡情的在Eclipse中開發(fā)MapReduce項目了。
其它可能出現(xiàn)的問題:
1、錯誤:出現(xiàn)DFS列表無法正常顯示的問題該怎么辦?且報如下錯誤:
解決方法:
1)可能是因為Hadoop集群(hdfs)沒有啟動或沒有啟動成功導(dǎo)致的
2)dfs權(quán)限:在配置文件中設(shè)置成false,或該屬性配置有拼寫錯誤
3)HDFS離開安全模式:hadoop dfsadmin -safemode leave
4)檢查防火墻是否關(guān)閉
2、錯誤:在搭建eclipse/Myeclipse過程中出現(xiàn)下面問題該如何解決?
解決方法:
1)點擊Window——Open Perspective——Other..
2)然后在彈出的對話框里選擇Map/Reduce,點擊OK即可。
3、錯誤:連接不到hdfs文件系統(tǒng)上,報如下錯誤:
解決方法:
把下圖的主機名改成對應(yīng)的IP地址即可;
這樣就可以連接到DFS文件系統(tǒng)了;
4、錯誤:安裝完hadoop-eclipse插件之后報如下錯誤
解決方法:
1)如果出現(xiàn)這種情況,把jdk換成1.8就可以了。Jdk1.8 對應(yīng)52,Jdk1.7 對應(yīng)51
2)最好把Java安裝路徑放在path路徑最前面
3)路徑最好不要有中文。
5、錯誤:出現(xiàn)下面問題,報NullPointerException異常?
解決方法:
可能是因為Hadoop相關(guān)jar包沒有導(dǎo)入到項目或者jar包沒導(dǎo)全
那么怎么導(dǎo)入jar包?導(dǎo)入哪些jar包呢?如下所示:
點擊項目右鍵——Build Path——Configure Build Path——進入如下界面
然后選擇你本地hadoop安裝目錄下的share目錄下的hadoop目錄下,如下圖,然后把這4個文件夾下的jar包導(dǎo)入即可。
五、如果還有問題怎么辦?
我們可以通過以下步驟來排查:
1)首先確保Windows下,系統(tǒng)位數(shù)、jdk位數(shù)、hadoop安裝包位數(shù)保持一致,否則肯定會報錯。 比如,64位的Windows系統(tǒng),需要安裝64位的jdk以及下載64位的hadoop安裝包(課程中有下載)。
如果不知道hadoop位數(shù)是否正確,可以雙擊下面的文件。
如果不出錯,說明文件沒有問題。如果hadoop的bin目錄下沒有hadoop.dll、winutils.exe這兩個文件,在課程中下載。
2)確保jdk以及hadoop的環(huán)境變量配置正確(前面已經(jīng)講解)
3)確保Linux下的防火墻已經(jīng)關(guān)閉。
4)如果出現(xiàn)Myeclipse訪問不了hdfs,可以按照上面第5個問題的解決辦法。
5)檢查C:\Windows\System32目錄下是否存在hadoop.dll和winutils.exe文件。
6)如果以上方法還是有錯誤,可能是系統(tǒng)或者Myeclipse版本的原因造成的,最糟糕的情況可能需要換一個干凈的Windows系統(tǒng)了。
童鞋們,是不是已經(jīng)搞定了,讓我們一起Hadoop吧!!!
如有疑問歡迎留言 共同探討~~
Hadoop Eclipse
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。