Hadoop1.0.4集羣安裝

2013年4月14日 星期日
Hadoop集羣的安裝
一 安裝計劃
   虛擬機:VMware9.0
   操作系統:CentOS5.8
   Hadoop:Hadoop1.0.4
   網段爲:192.168.201.1
   三個節點分別爲:
   Master:192.168.201.11
   Slave1: 192.168.201.12
   Slave2:192.168.201.13
   Java:jdk7u
   工具:SecureCRT

二 虛擬機的安裝及配置
   2.1 虛擬機的安裝就不詳述了

三 CentOS的安裝及配置
   3.1 安裝也不詳述
   3.2 配置
     3.2.1 首先將虛擬機的網卡設置爲host-only,
           物理機器的虛擬網卡VMnet1的IP設置爲192.168.201.1,以後建立的虛擬集羣都在這個網段 
     3.2.2 啓動系統,進入root用戶
     3.2.3 CentOS剛安裝完畢,要進行初始化設置,使得一些基本命令可以直接使用,不用再輸入絕對路徑
           ⑴ 配置/etc/profile文件,
              在文件末加入以下語句:
            PATH=$PATH:/sbin #在PATH變量後追加/sbin目錄
            export PATH=$PATH:/sbin#設置變量爲全局的
           ⑵ 配置/home/user/.bash_profile文件,
              在PATH後面添加/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin這幾個路徑。
     3.2.4 編輯/etc/sudoers文件,使得普通用戶可以以root權限執行命令,就是命令前可以使用“sudo”
           ⑴ 添加文件的寫權限。chmod u+w /etc/sudoers
           ⑵ 編輯/etc/sudoers文件。在"root ALL=(ALL) ALL"下面添加"user ALL=(ALL) ALL"(這裏的user是用戶名),退出
           ⑶ 註釋掉:Defaults    requiretty所在的行。即:#Defaults    requiretty
           ⑷ 撤銷文件的寫權限。chmod u-w /etc/sudoers。 
          
     3.2.5 編輯/etc/sysconfig/network-scripts/ifcfg-eth0,設置網卡的爲靜態獲取IP,並設置IP地址
           注:這個我在安裝CentOS時已經配置爲靜態IP,如果同學安裝的時候沒有配置爲靜態的,可以配置此
               文件配置,具體不在詳述
     3.2.6 編輯/etc/sysconfig/network和/etc/hosts設置機器名
           ⑴ hostname=master
           ⑵ 修改爲
              127.0.0.1 localhost
              192.168.201.11  master
              192.168.201.12  slave1
              192.168.201.13  slave2
     3.2.7 重啓虛擬機
     3.2.8 可以看到sudo已經可以使用了,ifconfig也可以直接用了,主機名也已經改了

四 JDK安裝
   4.1 SecureCRT的使用
     4.1.1 啓動SecureCRT(安裝不詳述)
     4.1.2 連接192.168.201.11
     4.1.3 打開SecureFX,將JDK複製到虛擬機中
   4.2 將壓縮包解壓
   4.3 編輯/etc/profile文件,加入以下幾行 --注jdk的具體安裝位置和版本自行修改
       export JAVA_HOME=/home/elvis/jdk1.7.0_17                 
       export JRE_HOME=/home/elvis/jdk1.7.0_17/jre              
       export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
       export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH   
   4.4 source /etc/profile  --使配置生效
   4.5 java -version                       
       可以看到java的版本信息,安裝成功      
      
五 虛擬集羣架設流程
   5.1 連接到虛擬機master(192.168.201.11)
   5.2 查看一下開機自動啓動的服務,關閉其中一些不必要的,可以加快開機速度並減少內存佔用                                      
       有很多服務沒必要開啓                                                           
       chkconfig --list                                                               
                                                                               
       需要關閉的服務有如下幾個:                                                     
       echo "123456" | sudo -S 這個前綴可以使得普通用戶不必在使用root權限             
       的時候再輸入密碼了         
                                                                               
       echo "123456" | sudo -S chkconfig sendmail off                                 
       echo "123456" | sudo -S chkconfig bluetooth off                                
       echo "123456" | sudo -S chkconfig NetworkManager off                           
       echo "123456" | sudo -S chkconfig acpid off                                    
       echo "123456" | sudo -S chkconfig apmd off                                     
       echo "123456" | sudo -S chkconfig dund  off                                    
       echo "123456" | sudo -S chkconfig pand  off                                    
       echo "123456" | sudo -S chkconfig capi  off                                    
       echo "123456" | sudo -S chkconfig cups off                                     
       echo "123456" | sudo -S chkconfig iptables off                                 
       echo "123456" | sudo -S chkconfig ip6tables off                                
       echo "123456" | sudo -S chkconfig irda off                                     
       echo "123456" | sudo -S chkconfig isdn off                                     
       echo "123456" | sudo -S chkconfig kudzu off                                    
       echo "123456" | sudo -S chkconfig lm_sensors off                               
       echo "123456" | sudo -S chkconfig mdmonitor off                                
       echo "123456" | sudo -S chkconfig pcscd off   
   5.3 通過SecureFX將一些必要的軟件copy到虛擬機裏   --這裏主要是hadoop軟件
   5.4 關閉虛擬機     
   5.5 將虛擬機的鏡像文件copy成2個副本,一共3個虛擬機
   注意:如果你的本本硬盤空間和物理內存都比較充裕的話可以多建立一些節點
   5.6 一個虛擬機副本copy完並啓動之後,vmware會重新給其網卡分配一個mac地址,所以需要修改mac地址,IP也要改
     5.6.1 ifconfig 查看本機eth0網卡的IP和mac地址
     5.6.2 編輯/etc/sysconfig/network-scripts/ifcfg-eth0,修改mac地址和IP地址 
   5.7 重啓網卡
       sudo service network restart
   5.8 編輯/etc/sysconfig/network機器名
   5.9 重啓
       注:其他節點也類似就不一一詳述
      
六 hadoop1.0.4部署流程
   6.1 啓動集羣master,slave1,slave2
   6.2 實現SSH無密碼登陸
     6.2.1 實現無密碼本機登錄master
       ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
      直接回車,完成後會在 ~/.ssh/ 生成兩個文件: id_dsa 和 id_dsa.pub 。這兩個是成對出現,類似鑰匙和鎖。
      再把 id_dsa.pub 追加到授權 key 裏面 ( 當前並沒有 authorized_key s文件 ) :
      cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

      實驗:ssh localhost hostname

      還是要輸入密碼,一般這種情況都是因爲目錄或文件的權限問題,看看系統日誌,確實是權限問題,
      .ssh下的authorized_keys權限爲600,其父目錄和祖父目錄應爲755,
      查看系統日誌:sudo tail /var/log/secure -n 20
      解決方法爲:chmod 755 .
                  chmod 755 .ssh
                  chmod 600 .ssh/authorized_keys
     
      在其他機器上同樣操作
     6.2.2 實現無密碼登錄其他機器
      把 slave1和slave2裏的id_dsa.pub都追加到授權 key 裏面
      ssh slave1 cat /home/elvis/.ssh/id_dsa.pub >> .ssh/authorized_keys
     
      將各節點authorized_keys文件合併並覆蓋至每個節點
      scp authorized_keys slave1:/home/elvis/.ssh/authorized_keys
     
      做技術就是謹慎,還是在全面檢驗一遍:ssh 192.168.201.12 hostname
      (每個節點上都需要驗證)
   6.3 修改/usr/local目錄的權限,命令:sudo chmod 777 /usr/local/
       將hadoop的tar包copy到/usr/local/下
       (master節點)copy到這個目錄下並且解壓
   6.4 查看 cat /etc/hosts

       192.168.201.11 master
       192.168.201.12 slave1
       192.168.201.13 slave2
   6.5 配置 conf/masters 和 conf/slaves
       在hadoop文件目錄裏
       conf/masters
       192.168.201.11
      
       conf/slaves
       192.168.201.12
       192.168.201.13
   6.6 配置 conf/hadoop-env.sh
       加入
       export JAVA_HOME=/home/elvis/soft/jdk1.7.0_17
   6.7 配置 conf/core-site.xml
       加入
       <property>       
       <name>fs.default.name</name>       
       <value>hdfs://192.168.201.11:9000</value>
       </property>
   6.8 配置 conf/hdfs-site.xml
       加入
       <property>       
         <name>dfs.http.address</name>
         <value>192.168.201.11:50070</value>
       </property>
       <property>       
         <name>dfs.name.dir</name>
         <value>/usr/local/hadoop/namenode</value>
       </property>
       <property>       
         <name>dfs.data.dir</name>
         <value>/usr/local/hadoop/data</value>
       </property>
        <property>       
         <name>dfs.replication</name>         
         <value>2</value>
       </property>
   6.9 配置conf/mapred-site.xml
       加入
       <property>
       <name>mapred.job.tracker</name>
       <value>192.168.201.11:8012</value>
       </property>
   6.10 建立相關的目錄
       /usr/local/hadoop/                     //hadoop數據和namenode目錄
   6.11 建立相關的目錄其他的幾個節點也是同樣
   6.12 將hadoop文件遠程copy到其他節點(這樣前面的配置就都映射到了其他節點上),
    命令爲:scp -r hadoop-x.xx.x 192.168.201.22:/usr/local/
   6.13 格式化Active master(192.168.201.11)
    命令:bin/hadoop namenode -format
   6.14 啓動集羣 ./start-all.sh
   6.15 現在集羣啓動起來了,看一下,命令:bin/hadoop dfsadmin -report
        2個datanode,打開web看一下
        瀏覽器輸入:192.168.201.11:50070
        命令:jps
   6.16集羣安裝完成!  
     

     
                      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章