這裏簡單用三臺虛擬機,搭建了一個兩個數據節點的hadoop機羣,僅供新人學習。零零碎碎,花了大概一天時間,總算完成了。java
環境node
Linux版本:CentOS 6.5vim
VMware虛擬機bash
jdk1.6.0_45ssh
主要分爲一下幾步完成oop
1、安裝CentOS 6.5學習
固然了,若是沒有虛擬機,須要先安裝VMware,而後新建虛擬機,選擇系統鏡像便可,複製幾臺,好比個人機器4G內存,最多複製兩臺,一共三臺。spa
建議這時候把全部機器進入管理員root權限:3d
[root@blue bin]#suorm
輸入密碼便可
2、修改IP
複製的三臺機器ip同樣的,須要配置/etc/sysconfig/network-scripts/ifcfg-eth0文件,有幾臺修改幾回,vim命令打開:
[root@blue bin]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改成:
主機修改成:192.168.183.3
三臺機器ip隨便都行,好比改成
192.168.183.3
192.168.183.4
192.168.183.5
3、免登錄
咱們須要讓三臺機器能互相進入、控制對方。
一、配置hostname
[root@blue bin]#vim /etc/hosts
全部機器都得有,因此能夠直接複製過去
[root@blue bin]#scp -rp /etc/hosts 192.168.183.4:/etc
[root@blue bin]#scp -rp /etc/hosts 192.168.183.5:/etc
二、配置network文件
[root@blue bin]#vim /etc/sysconfig/network
編輯HOSTNAME的值,就是給機器取名字:
另外兩臺機器也要編輯network文件,好比三臺機器分別取名blue、blue二、blue3。
重啓機器,命令輸入hostname:
就會出現剛纔設置的名字.
4、生成key
一、Ssh-keygen命令
[root@blue bin]#ssh-keygen
會生成文件,保存在/root/.ssh/id_rsa,到時候會有提示的,裏面有cat id_rsa.pub這個文件。
二、對於blue這臺機器:
[root@blue bin]#cat id_rsa.pub > authorized_keys
生成authorized_keys文件
在blue二、blue3都執行
[root@blue bin]#ssh-keygen命令
會生成一樣文件,裏面包含了控制該機器的鑰匙信息
打開blue二、blue3的id_rsa.pub文件會有形以下面內容,
鼠標選中(自動進入剪貼板),粘貼到blue機器的authorized_keys文件裏面,這樣blue(主機)的authorized_keys裏面就是三臺機器的鑰匙,有了鑰匙,就能夠訪問了。
authorized_keys裏面是這樣:
三、複製鑰匙
把authorized_keys文件遠程複製到blue二、blue3機器裏面,這樣每臺機器都有其它機器和本身的鑰匙了。
[root@blue bin]#scp –r authorized_keys 192.168.183.4:~/.ssh
[root@blue bin]#scp –r authorized_keys 192.168.183.4:~/.ssh
四、檢查
對於blue:
[root@blue bin]#ssh blue2
[root@blue bin]#ssh blue3
會發現不須要密碼,若是還須要密碼,那就失敗了。從新檢查,大不了從頭再來。
對於另外兩臺機器blue二、blue3也一樣ssh命令檢查,不須要密碼,就ok!
5、Hadoop環境配置
一、關閉防火牆
這就須要關閉三臺機器防火牆:
關閉:[root@blue bin]#service iptables stop
檢查:[root@blue bin]#iptables –L
會出現:
代表防火牆成功關閉
二、安裝hadoop
在blue機器裏面操做
保存hadoop文件,這裏是壓縮包,放到共享目錄裏面,將其複製到虛擬機blue的/usr/local/src文件夾下面
[root@blue bin]#cp /mnt/hgfs/share/hadoop-1.2.1-bin.tar.gz /usr/local/src
而後進入虛擬機的/usr/local/src下面:
解壓文件
[root@blue bin]#tar -xzvf hadoop-1.2.1-bin.tar.gz
三、修改配置文件
進入/usr/local/src/hadoop-1.2.1/conf文件夾,下面有須要配置的文件
(1)、修改masters文件
修改成:blue
(2)、修改slaves文件
修改成:
blue2
Blue3
(3)、修改core-site.xml文件
(4)、修改mapred-site.xml
(5)、修改hdfs-site.xml
(6)、配置環境修改文件hadoop-env.sh
I:安裝java
因爲hadoop是基於java的,這裏安裝java,而且配置JAVA_HOME環境變量
修改這個文件:
[root@blue bin]#vim ~/.bashrc
以下
JAVA_HOME值就是jdk的安裝路徑,這裏安裝在/usr/local/src下面
Ii:[root@blue bin]#source ~/.bashrc 刷新文件,由於剛纔修改過,除非重啓,
命令:
[root@blue bin]#Java
若是出現一些信息,代表配置java環境成功!
Iii:[root@blue bin]#vim Hadoop-env.sh
末尾加一行
export JAVA_HOME= /usr/local/src/jdk1.6.0_45
以上幾步須要細心,保證不敲錯一個字符!
四、複製hadoop到另外兩臺機器blue二、blue3
[root@blue bin]#scp -rp /usr/local/src/hadoop-1.2.1 192.168.183.4:/usr/local/src
或者:
[root@blue bin]#scp -rp /usr/local/src/hadoop-1.2.1 blue2:/usr/local/src
由於配置了network文件,每臺機器ip與hostname惟一對應,而且重啓生效了,因此用ip與名字是同樣的,若是沒有重啓,須要設置臨時名字:
[root@blue bin]#hostname blue
[root@blue bin]#hostname blue2
[root@blue bin]#hostname blue3
[root@blue bin]#scp -rp /usr/local/src/hadoop-1.2.1 192.168.183.5:/usr/local/src
或者:
[root@blue bin]#scp -rp /usr/local/src/hadoop-1.2.1 blue3:/usr/local/src
建議這裏再檢查一下三臺機器的防火牆是否關了,命令:
[root@blue bin]#Setenforce 0
[root@blue bin]#Getenforce
若是出現Permissive,代表關掉了,不然service iptables stop關掉防火牆。
五、格式化節點
進入目錄:
[root@blue bin]#cd /usr/local/src/hadoop-1.2.1/bin
執行hadoop命令:
[root@blue bin]#./hadoop namenode –format
六、啓動hadoop
[root@blue bin]#./start-all.sh
七、這時執行命令:
首先在父親(blue)裏面,若是父親都有問題,確定有問題。
[root@blue bin]#jps
出現的四個與上面圖片的必須同樣,不然代表有前面的5個配置文件有問題,返回去檢查。
若是沒有問題,再對blue二、blue3兩臺機器執行命令:
[root@blue bin]#jps
哈哈,會發現錯誤:bash:jps:command not found
實際上是不能發現java的環境變量,前面只配置了父親blue的java環境變量。
須要把主機blue的環境變量文件.bashrc複製到兩臺孩子機器blue二、blue3的對應位置下面,覆蓋原有的.bashrc文件。須要三臺機器jdk位置安裝同樣哦,這裏前面都統一安裝在/usr/local/src目錄下面。
[root@blue bin]#scp -rp ~/.bashrc blue2:~/
[root@blue bin]#scp -rp ~/.bashrc blue3:~/
還要分別在blue二、blue3裏面,記得source ~/.bashrc,從新加載文件,才能生效
八、中止hadoop
[root@blue bin]#./stop-all.sh
繼續五、6步,即在blue裏面的hadoop的bin目錄下面,這裏全部執行的文件都在bin目錄,下面。
而後在孩子節點機器blue二、blue3命令:
[root@blue bin]#jps:
英文意思是:4609數據節點、4700任務節點
出現的三個必須同樣,不然代表前面的5個配置文件有問題,返回去檢查。而後重複8——5——6——7步驟。
若是不出意外,按照這種步驟是能夠配置成功的!