Hadoop2.7完全分布式安裝

實驗工具:

? ? ? ? Ubuntu16.041臺主機(master:我的名字叫zhangjunj)+2臺虛擬機(slaves:slaveone 和 twoslave)

? ? ? ? hadoop:hadoop-2.7.3

? ? ? ? jdk:jdk1.8.0.121

安裝VisualBox(virtualbox-5.1_5.1.14)

? ? ? ? 安裝過程請自行百度,google

? ? ? ?這里我說一下自己碰到的問題:

? ? ? ? ? ?因為需要主機和虛擬機相互文件傳輸文件,所以需要共享設置,設置的方法我已在下面給出鏈接。其中博主說通過在/etc/fstab中加入 :

? ? ? gongxiang /mnt/shared vboxsf rw,gid=username,uid=username,auto 0 0

可以實現自動掛載。但是我實驗的時候,每次加入這段話,就進入Linux緊急模式,然后通過root權限刪除這句話,OK.所以大家懂的,如果需要創建文件,每次開機都得手動掛載。其中設置共享文件夾在這里


網絡配置?

? ? ? 1. 3個IP必須在同一網段上,然后在VirsualBox中 設置-->網絡設置成 -->橋接模式,如下圖所示:


2. 對相應的slaves配置IP:


3.因為橋接模式,我是通過ccproxy代理上網的,將代理放在我另一臺電腦的windows上,至于如何代理,自行Google,百度,然后說一下我遇到的問題:代理的時候,別忘了關閉windows下的防火墻。

4. 在主機和2個slave上的 /etc/hosts 中配置ip 每個節點對應的映射:


5. 配置好之后相互ping一下,然后確認是否成功:


SSH無密碼登錄各節點:

?這個操作就是讓master(zhangjunj)登錄到各個slave上

?1. 先在終端進行 sudo apt-get install openssh-server (先在本機上免密碼):

? ? ?第二步: ssh localhost?

? ? 第三步: ssh-keygen -t rsa

? ? 第四步: cat ./id_rsa.pub >> ./authorized_keys

? ? 四步完成之后驗證一下,進行 ssh localhost,就可以免密碼登錄了

2. 然后在主機master(我的叫zhangjunj)終端上進行:

? ? ? ?scp ~/.ssh/id_rsa.pub slaveone@slaveone:/home/remoteFile

結果:

接著在slaveone上:

mkdir ~/.ssh # 如果不存在請先創建,已存在請忽略

cat ~/remoteFile/id_rsa.pub >> ~/.ssh/authorized_keys

rm ~/id_rsa.pub #用完可以刪掉

(以上 網絡配置和 無密碼登錄 大多出自于: http://www.powerxing.com/install-hadoop-cluster/)

然后: ssh slaveone@slaveone


然后我從中在過程中遇到的問題遺忘了,解決的方法是 :我把一個master(zhangjunj)和兩個slave都相互配了一遍。

配置PATH變量

在 /etc/profile 中 除了 SCALA_HOME 和 相對應的PATH外,其他的都應該存在:

然后:source /etc/profile

配置集群

在主機(master,我的叫zhangjunj)上這個需要修改 ..../.../hadoop/etc/hadoop中的5個配置文件:slaves、core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml.

1.在文件slaves中:

2. 文件core-site.xml改為下面配置:

3. 文件hdfs-site.xml,其中我的dfs.replication設置,因為我有2個slave,所以為2.


4. 文件mapred-site.xml:

5. 文件yarn-site.xml:


6. 在傳輸之前,如果之前跑過偽分布,建議先刪除之前的臨時文件,在hadoop根目錄下執行:

? ? ? ? ? ? ? ? ? ? ? sudo rm -rf tmp

? ? ? ? ? ? ? ? ? ? ? sudo rm -rf logs/*

7. 配置好之后,將配好的hadoop文件可以復制到2個slave上。然后將配好的hadoop分配到2個slave中. 我是通過共享文件夾傳輸的,因為scp傳輸總是拒絕,不知道什么原因,也沒有解決,如果哪個大神知道,敬請賜教。(但共享文件夾傳輸會有訪問權限的問題,需要修改hadoop根目錄下./hdfs/data的文件權限,我是通過 chmod 777 修改權限了)

8. 首先啟動需要現在Master(Zhangjunj)執行NameNode格式化,通過根目錄下進入bin目錄下:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ./hdfs namenode -format?

9. 然后退出到根目錄,進入 sbin目錄下,進行:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ./start-dfs.shfenxiang

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ./start-yarn.sh

結果如圖:

10. 在 slave機子上 在進行 jps,如下圖所示:

?第9條和第10 條中任何一個進程沒有,都是出現錯誤,就得改吧。

我出現的問題是:Datanode一直啟動不起來,改了兩天,才發現是關于namesnode數據格式的問題,而我的又不一樣,我的是Datanode中沒有關于namenodeID,然后通過(轉自:http://www.lishiyu.cn/post/61.html),通過它的方法,將master主機中的hadoop根目錄下 /tmp臨時文件刪除,還有hadoop根目錄下的/hdfs/data和/hdfs/name目錄下文件都刪除,然后成功。


致此,hadoop環境搭建完成,其中,我還是有許多搞不懂的地方。慢慢來吧,腳踏實地,代碼的提升就是靠改錯提升的。期間痛苦,過后就興奮的像孔乙己了。

希望每個coding的程序猿們,大家都寫寫博客,雖不能完整描述,但可以把自己問題說出來,然后說出解決辦法。好的風氣起來,對你,對大家,都是很節省時間的。其中我很想說為什么這么做,但是,我真的能力有限。下面是我參考的博文,希望對大家有用:

我用的最多的是這個地址:這個

還有這兩個:實驗樓(給它做廣告它會不會很開心呢)和?這個

在此,謝謝博友們的分享。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容