天天看點

VMware_CentOS 6.5下一步步搭建Hadoop叢集

Hadoop版本:hadoop-1.2.1

JDK版本:jdk-6u45-linux-x64

Linux版本:CentOS 6.5 64位

登入使用者:root

1、虛拟機搭建

     我使用了三個節點,依次命名為master、slave1和slave2。在VMware中以NAT模式安裝好CentOS 6.5系統的master後,開始利用配置檔案建立slave1和slave2。

1.1 複制master的CentOS配置檔案

     将master的配置檔案CentOS 64位.vmx所在的檔案夾VM CentOS 64複制兩份到根目錄下vm,分别命名為slave1和slave2。

     配置檔案所在的位置可将master挂起後,檢視到虛拟機詳細資訊:

VMware_CentOS 6.5下一步步搭建Hadoop叢集

     複制後的檔案夾:

VMware_CentOS 6.5下一步步搭建Hadoop叢集

1.2 利用複制後的配置檔案建立slave1和slave2

     VMware中依次單擊“檔案”–“打開”,彈出對話框,找到slave1對應的.vmx配置檔案,确定,建立複制後的虛拟機,同樣的方法建立slave2。

VMware_CentOS 6.5下一步步搭建Hadoop叢集

1.3 修改slave1和slave2的網絡配置

     由于slave1和slave2是從master整體複制而來的,其ip位址和網卡均與master相同,必須修改後才能聯網。此時在任意虛拟機上執行ifconfig指令可以看到相同的ip位址和網卡資訊:

VMware_CentOS 6.5下一步步搭建Hadoop叢集

     對于ip位址,直接在/etc/sysconfig/network-scripts/ifcfg-eth0中修改即可,這裡slave1為192.168.230.11,slave2位192.168.230.12。

     對于網卡,在slave1和slave2的虛拟機設定中,将其網絡擴充卡移除後,再添加即可,此時ip位址和網卡已和master不一樣了,可以聯網:

VMware_CentOS 6.5下一步步搭建Hadoop叢集
VMware_CentOS 6.5下一步步搭建Hadoop叢集

2、安裝jdk

     需要在三台機器master、slave1和slave2上安裝jdk,jdk安裝包在實體機上,利用VMware共享檔案夾的功能,将安裝包共享到虛拟機master上,再分發到slave1和slave2上,依次安裝。

2.1 設定共享檔案夾

     對master打開“虛拟機設定”對話框,将實體機上放有jdk安裝包和其他程式包的檔案夾share folder設定為共享:

VMware_CentOS 6.5下一步步搭建Hadoop叢集

     共享後,可在master的/mnt/hgfs下看到共享檔案夾share folder,利用cp指令将安裝包複制到/usr/local/java檔案夾下,執行安裝。

cd /mnt/hgfs/share folder
cp jdk-6u45-linux-x64.bin /usr/local/java
./jdk-6u45-linux-x64.bin
           

     關于jdk的安裝路徑,有必要了解linux的軟體安裝目錄,安裝程式并不是非要在指定的目錄下安裝,但從擴充性和管理性上,遵循規則是為了更友善地管理與使用:

     這裡參考:http://blog.51cto.com/mystery888/1835223

  • /usr:系統級的目錄,可以了解為C:/Windows/,/usr/lib了解為C:/Windows/System32。
  • /usr/local:使用者級的程式目錄,可以了解為C:/Progrem Files/。主要存放那些手動安裝的軟體,即不是通過apt-get安裝的軟體。使用者自己編譯的軟體預設會安裝到這個目錄下。
  • /opt:使用者級的程式目錄,可以了解為D:/Software,opt有可選的意思,這裡可以用于放置第三方大型軟體(或遊戲)。安裝到/opt目錄下的程式,它所有的資料、庫檔案等等都是放在同個目錄下面。當你不需要時,直接rm -rf掉即可。在硬碟容量不夠時,也可将/opt單獨挂載到其他磁盤上使用。舉個例子:測試版firefox,就可以裝到/opt/firefox_beta目錄下,/opt/firefox_beta目錄下面就包含了運 行firefox所需要的所有檔案、庫、資料等等。要删除firefox的時候,你隻需删除/opt/firefox_beta目錄即可。
  • /usr/src:系統級的源碼目錄。
  • /usr/local/src:使用者級的源碼目錄。

2.2 配置環境變量

     在root使用者的~/.bashrc檔案尾行添加如下環境變量:

  • export JAVA_HOME=/usr/local/java/jdk1.6.0_45
  • export CLASSPATH=.: $ CLASSPATH:$JAVA_HOME/lib
  • export PATH=$ PATH:$JAVA_HOME/bin

     然後執行以下語句使配置檔案生效,完成jdk安裝:

source ~/.bashrc
           

     之是以修改~/.bashrc而不是/etc/profile是因為修改/etc路徑下的配置檔案将會應用到整個系統,屬于系統級的配置,而修改使用者目錄下的.bashrc隻是限制在使用者應用上,屬于使用者級設定。兩者在應用範圍上有所差別,建議如需修改的話,修改使用者目錄下的.bashrc,即無需root權限,也不會影響其他使用者。

3、安裝hadoop

3.1 修改主機名(master、slave1和slave2)

     第一步:以maser節點為例,修改/etc/sysconfig/network中的hostname=“你的主機名”:

VMware_CentOS 6.5下一步步搭建Hadoop叢集

     第二步:在/etc/hosts行尾添加三台節點的ip位址和“各自主機名”:

VMware_CentOS 6.5下一步步搭建Hadoop叢集

     第三步:執行shutdown -r now重新開機系統即可。

3.2 解壓

     通過共享檔案夾功能将/mnt/hgfs/folder/hadoop-1.2.1-bin.tar.gz複制到master節點的/usr/local/hadoop1,在該路徑下利用如下指令解壓得到hadoop-1.2.1檔案夾:

tar xvzf hadoop-1.2.1-bin.tar.gz
           

     進入hadoop-1.2.1檔案夾,建立tmp目錄:

VMware_CentOS 6.5下一步步搭建Hadoop叢集

3.3 修改配置檔案

     進入conf目錄,依次修改master、slaves、core-site.xml、mapred-site.xml、hdfs-site.xml、hadoop-env.sh配置檔案:

  • master:
    VMware_CentOS 6.5下一步步搭建Hadoop叢集
  • slaves:
    VMware_CentOS 6.5下一步步搭建Hadoop叢集
  • core-site.xml:
    VMware_CentOS 6.5下一步步搭建Hadoop叢集
  • mapred-site.xml:
    VMware_CentOS 6.5下一步步搭建Hadoop叢集
  • hdfs-site.xml:
    VMware_CentOS 6.5下一步步搭建Hadoop叢集
  • hadoop-env.sh尾行:
    VMware_CentOS 6.5下一步步搭建Hadoop叢集
         注:配置檔案中凡是涉及到路徑和ip位址的均是填寫自己的路徑和位址

3.4 從master遠端複制到slave1和slave2

     在master節點的/usr/local/hadoop1目錄下,利用如下語句将hadoop-1.2.1檔案夾複制到slave1和slave2對應路徑下:

scp -rp hadoop-1.2.1 slave1:/usr/local/hadoop1
scp -rp hadoop-1.2.1 slave2:/usr/local/hadoop1
           

3.5 關閉防火牆

     在每個節點上執行以下語句關閉防火牆:

/etc/init.d/iptables stop
setenforce 0
           

3.6 建立ssh遠端互信

     第一步:在master節點上執行下列指令:

ssh-keygen
           

     第二步:在~/.ssh目錄下,将id_rsa.pub複制到authorized_keys:

cat id_rsa.pub > authorized_keys
           

     第三步:分别在slave1和slave2節點上執行ssh-keygen指令,将其id_rsa.pub内容複制到master的authorized_keys上:

VMware_CentOS 6.5下一步步搭建Hadoop叢集

     第四步:将master的authorized_keys遠端複制到slave1和slave2上:

scp -rp authorized_keys slave1:~/.ssh/
scp -rp authorized_keys slave2:~/.ssh/
           

3.7 啟動hadoop叢集

     第一步:在master節點上,進入到/usr/local/hadoop1/hadoop-1.2.1/bin目錄下,由于是第一次啟動,需要執行以下指令格式化:

[[email protected] bin]# ./hadoop namenode -format
           

     第二步:啟動叢集:

[[email protected] bin]# ./start-all.sh
           

     第三步:在各節點下輸入jps指令,master出現JobTracker、NameMode和SecondaryNameNode程序,slave1和slave2出現DataNode和TaskTracker則搭建成功。

繼續閱讀