搭建徹底分佈式的hadoop

用於測試,我用4臺虛擬機搭建成了hadoop結構java

我用了兩個臺式機。一個xp系統,一個win7系統。每臺電腦裝兩個虛擬機,要否則內存就滿了。node

 

一、安裝虛擬機環境linux

     Vmware,收費產品,佔內存較大。ubuntu

     或vim

     Oracle的VirtualBox,開源產品,佔內存較小,但安裝ubuntu過程當中,重啓會出錯。windows

     我選Vmware。bash

 

二、安裝操做系統服務器

     Centos,紅帽開源版,接近於生產環境。網絡

     Ubuntu,操做簡單,方便,界面友好。ssh

     我選Ubuntu12.10.X 32位

 

三、安裝一些經常使用的軟件

     在每臺linux虛擬機上,安裝:vim,ssh

     sudo apt-get install vim

     sudo apt-get install ssh

     在客戶端,也就是win7上,安裝SecureCRT,Winscp或putty,這幾個程序,都是依靠ssh服務來操做的,因此前提必須安裝ssh服務。

     service ssh status 查看ssh狀態。若是關閉使用service ssh start開啓服務。

     SecureCRT,能夠經過ssh遠程訪問linux虛擬機。

     winSCP或putty,能夠從win7向linux上傳文件。

 

四、修改主機名和網絡配置

    主機名分別爲:master,host2,host3,host4。

    sudo vim /etc/hostname

    網絡配置,包括ip地址,子網掩碼,DNS服務器。如上圖所示。

 

五、修改/etc/hosts文件。

    修改每臺電腦的hosts文件。

    hosts文件和windows上的功能是同樣的。存儲主機名和ip地址的映射。

    在每臺linux上,sudo vim /etc/hosts 編寫hosts文件。將主機名和ip地址的映射填寫進去。編輯完後,結果以下:

    

 

 

六、配置ssh,實現無密碼登錄

    無密碼登錄,效果也就是在master上,經過 ssh host2ssh host3ssh host4 就能夠登錄到對方計算機上。並且不用輸入密碼。

    四臺虛擬機上,使用   ssh-keygen -t rsa    一路按回車就好了。

    剛纔都做甚了呢?主要是設置ssh的密鑰和密鑰的存放路徑。 路徑爲~/.ssh下。

    打開~/.ssh 下面有三個文件

    authorized_keys,已認證的keys

    id_rsa,私鑰

    id_rsa.pub,公鑰   三個文件。

    下面就是關鍵的地方了,(咱們要作ssh認證。進行下面操做前,能夠先搜關於認證和加密區別以及各自的過程。)

    ①在master上將公鑰放到authorized_keys裏。命令:sudo cat id_rsa.pub >> authorized_keys

    ②將master上的authorized_keys放到其餘linux的~/.ssh目錄下。

       命令:sudo scp authorized_keys hadoop@10.10.11.192:~/.ssh       

               sudo scp authorized_keys 遠程主機用戶名@遠程主機名或ip:存放路徑。

    ③修改authorized_keys權限,命令:chmod 644 authorized_keys

    ④測試是否成功

       ssh host2 輸入用戶名密碼,而後退出,再次ssh host2不用密碼,直接進入系統。這就表示成功了。

 

七、上傳jdk,並配置環境變量。

    經過winSCP將文件上傳到linux中。將文件放到/usr/lib/java中,四個linux都要操做。

    解壓縮:tar -zxvf jdk1.7.0_21.tar

    設置環境變量 sudo vim ~/.bashrc

    在最下面添加:

    export JAVA_HOME = /usr/lib/java/jdk1.7.0_21

    export PATH = $JAVA_HOME/bin:$PATH

 

    修改完後,用source ~/.bashrc讓配置文件生效。

 

八、上傳hadoop,配置hadoop

    經過winSCP,上傳hadoop,到/usr/local/下,解壓縮tar -zxvf hadoop1.2.1.tar

    再重命名一下,sudo mv hadoop1.2.1 hadoop 

    這樣目錄就變成/usr/local/hadoop

 

    修改環境變量,將hadoop加進去(最後四個linux都操做一次)

    sudo vim ~/.bashrc

    export HADOOP_HOME = /usr/local/hadoop

    export PATH = $JAVA_HOme/bin:$HADOOP_HOME/bin:$PATH

 

    修改完後,用source ~/.bashrc讓配置文件生效。

 

    修改/usr/local/hadoop/conf下配置文件

    hadoop-env.sh,

     

 

    (上面這張圖片,有一些問題,只export JAVA_HOME進去就能夠了,不用export HADOOP_HOME和PATH了 )

    core-site.xml,

    

    hdfs-site.xml,

    

    mapred-site.xml,

    

    master,

    

    slave,

    

 

    上面的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml,master,slave幾個文件,在四臺linux中都是同樣的。

    配置完一臺電腦後,能夠將hadoop包,直接拷貝到其餘電腦上。

 

    最後要記得,將hadoop的用戶加進去,命令爲

      sudo chown -R hadoop:hadoop hadoop 

      sudo chown -R 用戶名@用戶組 目錄名

    讓hadoop配置生效

      source hadoop-env.sh

 

    格式化namenode,只格式一次

      hadoop namenode -format

 

    啓動hadoop

      切到/usr/local/hadoop/bin目錄下,執行 start-all.sh啓動全部程序

 

    查看進程,是否啓動

       jps

      master,

      

      host2,

      

      host3,host4,的顯示結果,與host2相同。

相關文章
相關標籤/搜索