實驗工具:
? ? ? ? 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
? ? ? ?這里我說一下自己碰到的問題:
? ? ? ? ? ?因為需要主機和虛擬機相互文件傳輸文件卷中,所以需要共享設(shè)置狰住,設(shè)置的方法我已在下面給出鏈接灭袁。其中博主說通過在/etc/fstab中加入 :
? ? ? gongxiang /mnt/shared vboxsf rw,gid=username,uid=username,auto 0 0
可以實現(xiàn)自動掛載叁征。但是我實驗的時候全闷,每次加入這段話漂问,就進入Linux緊急模式蔼水,然后通過root權(quán)限刪除這句話震糖,OK.所以大家懂的,如果需要創(chuàng)建文件趴腋,每次開機都得手動掛載吊说。其中設(shè)置共享文件夾在這里。
網(wǎng)絡(luò)配置?
? ? ? 1. 3個IP必須在同一網(wǎng)段上优炬,然后在VirsualBox中 設(shè)置-->網(wǎng)絡(luò)設(shè)置成 -->橋接模式,如下圖所示:
2. 對相應(yīng)的slaves配置IP:
3.因為橋接模式颁井,我是通過ccproxy代理上網(wǎng)的,將代理放在我另一臺電腦的windows上蠢护,至于如何代理蚤蔓,自行Google,百度糊余,然后說一下我遇到的問題:代理的時候秀又,別忘了關(guān)閉windows下的防火墻。
4. 在主機和2個slave上的 /etc/hosts 中配置ip 每個節(jié)點對應(yīng)的映射:
5. 配置好之后相互ping一下贬芥,然后確認是否成功:
SSH無密碼登錄各節(jié)點:
?這個操作就是讓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
結(jié)果:
接著在slaveone上:
mkdir ~/.ssh # 如果不存在請先創(chuàng)建蘸劈,已存在請忽略
cat ~/remoteFile/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub #用完可以刪掉
(以上 網(wǎng)絡(luò)配置和 無密碼登錄 大多出自于: http://www.powerxing.com/install-hadoop-cluster/)
然后: ssh slaveone@slaveone
然后我從中在過程中遇到的問題遺忘了昏苏,解決的方法是 :我把一個master(zhangjunj)和兩個slave都相互配了一遍。
配置PATH變量
在 /etc/profile 中 除了 SCALA_HOME 和 相對應(yīng)的PATH外威沫,其他的都應(yīng)該存在:
然后: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設(shè)置孵构,因為我有2個slave,所以為2.
4. 文件mapred-site.xml:
5. 文件yarn-site.xml:
6. 在傳輸之前烟很,如果之前跑過偽分布颈墅,建議先刪除之前的臨時文件蜡镶,在hadoop根目錄下執(zhí)行:
? ? ? ? ? ? ? ? ? ? ? sudo rm -rf tmp
? ? ? ? ? ? ? ? ? ? ? sudo rm -rf logs/*
7. 配置好之后,將配好的hadoop文件可以復(fù)制到2個slave上恤筛。然后將配好的hadoop分配到2個slave中. 我是通過共享文件夾傳輸?shù)墓倩梗驗閟cp傳輸總是拒絕,不知道什么原因毒坛,也沒有解決望伦,如果哪個大神知道,敬請賜教煎殷。(但共享文件夾傳輸會有訪問權(quán)限的問題屡谐,需要修改hadoop根目錄下./hdfs/data的文件權(quán)限,我是通過 chmod 777 修改權(quán)限了)
8. 首先啟動需要現(xiàn)在Master(Zhangjunj)執(zhí)行NameNode格式化,通過根目錄下進入bin目錄下:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ./hdfs namenode -format?
9. 然后退出到根目錄蝌数,進入 sbin目錄下,進行:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ./start-dfs.shfenxiang
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ./start-yarn.sh
結(jié)果如圖:
10. 在 slave機子上 在進行 jps度秘,如下圖所示:
?第9條和第10 條中任何一個進程沒有顶伞,都是出現(xiàn)錯誤,就得改吧剑梳。
我出現(xiàn)的問題是:Datanode一直啟動不起來唆貌,改了兩天,才發(fā)現(xiàn)是關(guān)于namesnode數(shù)據(jù)格式的問題垢乙,而我的又不一樣锨咙,我的是Datanode中沒有關(guān)于namenodeID,然后通過(轉(zhuǎn)自:http://www.lishiyu.cn/post/61.html)追逮,通過它的方法酪刀,將master主機中的hadoop根目錄下 /tmp臨時文件刪除,還有hadoop根目錄下的/hdfs/data和/hdfs/name目錄下文件都刪除钮孵,然后成功骂倘。
致此,hadoop環(huán)境搭建完成巴席,其中历涝,我還是有許多搞不懂的地方。慢慢來吧漾唉,腳踏實地荧库,代碼的提升就是靠改錯提升的。期間痛苦赵刑,過后就興奮的像孔乙己了分衫。
希望每個coding的程序猿們,大家都寫寫博客般此,雖不能完整描述丐箩,但可以把自己問題說出來摇邦,然后說出解決辦法。好的風(fēng)氣起來屎勘,對你施籍,對大家,都是很節(jié)省時間的概漱。其中我很想說為什么這么做丑慎,但是,我真的能力有限瓤摧。下面是我參考的博文竿裂,希望對大家有用:
我用的最多的是這個地址:這個
在此,謝謝博友們的分享照弥。