虛擬機+ubuntu+Hadoop配置+win10下eclipse與虛擬機的通信

最近,要在eclipse實現一個Hadoop工程,並傳給虛擬機的hadoop運行,查了好多博客,記錄一下出錯的地方。


:虛擬機裏面配置Hadoop(特別提醒不要下最新的Ubuntu和hadoop,出錯了的坑巨多且網上還不好找到解決辦法
首先,配置hadoop參照了這位朋友的:
hadoop的僞分佈式集羣配置

可能出現的坑:
1、一定要按上面配置好ssh,不然後面肯定出現問題。

2、注意jdk、hadoop、ubuntu(或者其他linux系統)版本是否匹配。

3、最好創建一個hadoop用戶,並給予權限,類似這樣“sudo chown -R hadoop ./hadoop”

4、在單機執行wordcount時,可能share/hadoop下沒有mapreduce,不要糾結,直接在網上下載一個版本匹配的wordcount的jar包,給複製到這個目錄下。
如果單機還是運行wordcount失敗,也不要糾結,先把僞分佈集羣配置好,在集羣中執行(我是在僞集羣中執行成功了)

5. 佈置完成後,格式化開啓集羣后,輸入jps發現沒有datanode節點,可能時是原來的格式化失敗留下的namenode節點沒刪掉,去自己hadoop目錄tmp往下走,把namenode刪掉,重新格式化,再重啓

6、yarn可以暫時不配置,如果你的項目沒有用到yarn的話,可以不配置

7、在運行wordcount,一個要按步驟把寫好的file.txt文件放入hdfs系統中,
如:bin/hdfs dfs -put my_wordcount.txt /data/input 要把它put進這個hdfs文件系統。可參考這位朋友的文章:
在命令行中運行hadoop的wordcount實例


、在win10下eclipse連接虛擬機的hadoop,實現通信.可以參考這位朋友的文章:Windows下的eclipse遠程連接Linux下的Hadoop2.7.3 原理一樣,版本需是自己的版本。

1、首先,可能會遇上虛擬機拒絕這個eciplse的連接。注意看這個錯誤信息,host的ip與destion的ip是否在同一網段
如: ①192.168.43.33 ②192.168.43.200 ③192.168.22.33
只有①和②在同一的網段。
如果不在,則手動分配給虛擬機ip地址,使其與主機的ip在同一網段。然後看看虛擬機與主機是否相互ping的通。不同的話,在ubuntu裏面輸入sudo ifconfig查看ip地址,即eth0或ens33後面的inet地址。如果ip沒改過來,則輸入sudo dhclient刷新一下,,在ifconfig查看。
同時,可以在win10的cmd裏面輸入ipconfig查看ip。這裏說一下,我是用橋接的,在實際上發現主機機老是默認我的vm8、vm1的IP,卻不認我的wifi的ip爲自己ip。解決辦法:去虛擬機裏面把vm8、vm1下的那個左下角第一個正方小框框,好像是連接主機什麼的,把這個勾取消掉就ok了。因爲有可能你以爲互相ping通了,就沒事了,其實你的ip還真不一定是你以爲的那個。
只要,ip在一個局域網,理論上一定能ping的通。
當然,還有防火牆沒關的可能性。

2、其次,要注意的是hadoop-common插件和hadoop-eclipse插件一定要版本和hadoop一致,一定要在正確路徑下。不然,後面執行就一定錯誤。

3.最後,也是最容易忽略的,重啓!!!在你配置完hadoop.dll或着其它文件,把eclipse推出重進。在你的hadoop的一些core-site.xml 、 hdfs-site.xml重新配置後,把ssh也給它重啓了。 不然它不生效,就白耗時間。


、編寫Hadoop工程上傳
參考這位朋友的博客的步驟
使用eclipse開發hadoop應用程序。(這個裏面的程序代碼我沒有運行成功)

1、在跟步驟操作後,發現運行不成功,注意檢查自己的端口是否匹配,ip是否匹配,路由是否匹配。注意,這個programm argument的路由時相對hdfs系統的路由,不是實際在hadoop存儲的路由。

2、如果你都嘗試了,還是失敗,那麼還有“曲線救國的方法”。利用先將eclipse的工程文件用export 到出爲jar文件,導出注意按next,把主要函數給聲明瞭。然後利用xftp把主機的剛導出的文件傳給虛擬機的目錄裏。
這裏強調一下,可能你用fxtp連接虛擬機輸入密碼老是錯誤,百度一下看看那個配置錯沒錯,防火牆關沒關,重啓ssh。
重點:看看你們此時是否還能ping的通,按我的第二點的的第1點來。我的情況就是虛擬機ip,莫名其妙變了,解決辦法: ubuntu右上角那個數據連接的標誌,給它disable關了,再開一下,就正常了。
連接成功後,把jar傳過去自己隨便選的一個文件夾,然後在虛擬機裏面把它給運行了。大概是bin/hadoop jar 你的jar路徑 ./input/file/txt ./output03
如果你的版本沒問題,代碼沒問題,就可以在win10下的eclipse裏面的dfs下看到輸出文件output03了。


、除wordcount外的hadoop小項目:
參考大家的分享:大家分享的項目鏈接
以及這一個單表關聯小項目


:分享一些插件
鏈接:這是一個網盤鏈接
提取碼:l95a
裏面主要是 hadoop-eclipse-plugin-2.7.7、hadoop-common-2.7.7和hadoop-common-eclipse-plugin-2.6.0 這些插件。


以上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章