hengheng123456789

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
          轉自:http://jeffxie.blog.51cto.com/1365360/295076
          雖然和GOOGLE的云計算框架相差很遠,但是基本能夠實現云框架還是可以的,我選擇了hadoop,最近這個框架在網絡上炒的很火,一部分IT高手加入了開發隊列,本人也不例外(不過我不是高手,只是一個很普通的系統架構師而已)
          好了廢話少說,直接切入主題吧
          首先使用了五臺機器來實現hadoop框架。
          IP依次為:
          192.168.1.199(master)
          192.168.1.200(slave)
          192.168.1.201(slave)
          192.168.1.202(slave)
          192.168.1.203(slave)
          以下是簡單結構:
           
           
          首先登錄119服務器
          [root@localhost ~]# uname -ar
          Linux localhost 2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008 i686 i686 i386 GNU/Linux
          保證計算機名的全局唯一性:
          hadoop1. test.com -----192.168.1.203
          hadoop2. test.com -----192.168.1.202
          hadoop3. test.com -----192.168.1.201
          hadoop4. test.com -----192.168.1.200
          hadoop5. test.com -----192.168.1.199
           
          設置hostname
          Hostname hadoop5.test.com
          [root@localhost ~]# vi /etc/hosts
          127.0.0.1               localhost.localdomain localhos
          192.168.1.199                   hadoop5.test.com
          [root@localhost ~]# uname -ar
          Linux hadoop5.test.com 2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008 i686 i686 i386 GNU/Linux
          [root@localhost ~]# vi /etc/sysconfig/network 
           
          NETWORKING=yes
          NETWORKING_IPV6=no
          #HOSTNAME=localhost.localdomain
          HOSTNAME=hadoop5.test.com
          GATEWAY=192.168.1.254
           
          OK了,已經修改過來了,其他機器也同樣的設置。
          為了方便,關閉防火墻:(5臺服務器都設置)
          [root@hadoop5 ~]# service iptables stop
          [root@hadoop5 ~]# chkconfig iptables off
          方便起見,創建hadoop用戶
          [root@hadoop5 ~]# useradd hadoop
          下載JDK最新版:
          http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u19-linux-i586.bin?BundledLineItemUUID=YTBIBe.nt_gAAAEnpTtSWvsx&OrderID=Ga5IBe.n.w4AAAEnmjtSWvsx&ProductID=8ihIBe.nLjEAAAEnh3cZVnKo&FileName=/jdk-6u19-linux-i586.bin
           
          全部放入/home/hadoop目錄。
          [root@localhost local]# cp jdk-6u19-linux-i586.bin /usr/local/
          [root@localhost local]# cd /usr/local/   
          [root@localhost local]# chmod +x ./jdk-6u19-linux-i586.bin
          [root@localhost local]#./jdk-6u19-linux-i586.bin    #執行
          一直按回車即可,然后輸入yes回車。
          [root@localhost local]# rm -rf jdk-6u19-linux-i586.bin
          [root@localhost local]# cd  /home/hadoop/
          [root@localhost hadoop]# vi /etc/profile
          在最下面加入:
           
          export JAVA_HOME=/usr/local/jdk1.6.0_19
          export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
          export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH
          export HADOOP_HOME=/home/hadoop/hadoop-0.20.2
          export PATH=$PATH:$HADOOP_HOME/bin
           
          [root@localhost hadoop]# source /etc/profile
          現在我們修改hadoop的配置文件:0.20以上的配置和以前的配置有些是不同的,我們 0.20.2為例做東西
          [root@localhost conf]# pwd
          /home/hadoop/hadoop-0.20.2/conf
          [root@localhost conf]# vi  core-site.xml
          [root@localhost conf]# echo "export JAVA_HOME=/usr/local/jdk1.6.0_19" >>  hadoop-env.sh
          [root@localhost conf]# vi hdfs-site.xml
          [root@localhost conf]# vi mapred-site.xml

          添加slave地址
          vim /home/hadoop/hadoop-0.20.2/conf/slaves
          我的內容是:
          192.168.1.200
          192.168.1.201
          192.168.1.202
          192.168.1.203
          也可以用一下方法添加
          [root@localhost conf]# echo 192.168.1.199 > masters
          [root@localhost conf]# echo 192.168.1.200 > slaves
          [root@localhost conf]# echo 192.168.1.201 >> slaves 
          [root@localhost conf]# echo 192.168.1.202 >> slaves 
          [root@localhost conf]# echo 192.168.1.203 >> slaves 
          現在我們做無密碼的ssh登錄的設置:
          建立Master到每一臺SlaveSSH受信證書。由于Master將會通過SSH啟動所有Slave Hadoop,所以需要建立單向或者雙向證書保證命令執行時不需要再輸入密碼。在Master和所有的Slave機器上執行:ssh-keygen -t rsa
          執行此命令的時候,看到提示只需要回車。然 后就會在/root/.ssh/下面產生id_rsa.pub的證書文件,通過scpMaster機器上的這個文件拷貝 Slave上(記得修改名稱),例如:
          Scp root/.ssh/id_rsa.pub root@192.168.1.200:/root/.ssh/authorized_keys
          ,建立authorized_keys文件即可,可以打開這個文件看看,也就是rsa的公 鑰作為keyuser@IP作為value。此時可以試驗一下,從master sshslave已經不需要密碼了。由slave反向建立也是同樣。為什么要反向呢?其實如果一直都是Master啟動和關閉的話那么沒有必要建立反 向,只是如果想在Slave也可以關閉Hadoop就需要建立反向。
           
          [root@localhost .ssh]# scp /root/.ssh/id_rsa.pub root@192.168.1.200:/root/.ssh/authorized_keys
          root@192.168.1.200's password:
          id_rsa.pub                                                                                        100%  403     0.4KB/s   00:00   
          [root@localhost .ssh]# scp /root/.ssh/id_rsa.pub root@192.168.1.201:/root/.ssh/authorized_keys
          root@192.168.1.201's password:
          id_rsa.pub                                                                                        100%  403     0.4KB/s   00:00   
          [root@localhost .ssh]# scp /root/.ssh/id_rsa.pub root@192.168.1.202:/root/.ssh/uthorized_keys root@192.168.1.202's password:
          id_rsa.pub                                                                                        100%  403     0.4KB/s   00:00   
          [root@localhost .ssh]# scp /root/.ssh/id_rsa.pub root@192.168.1.203:/root/.ssh/authorized_keys
          root@192.168.1.203's password:
          id_rsa.pub                                                                                        100%  403     0.4KB/s   00:00  
           
          然后重啟SSHD服務
          [root@localhost .ssh]# service sshd restart
          Stopping sshd:                                             [  OK  ]
          Starting sshd:                                             [  OK  ]
           
          然后每臺服務器上都修改ssh的配置文件:/etc/ssh/sshd_config GSSAPIAuthentication的值設置為no
          這樣起到加速的作用,具體含義,自己看下ssh手冊。
           
          然后壓縮hadoop文件夾成為一個壓縮包
          [root@localhost hadoop]# cd /home/hadoop/
          [root@localhost hadoop]# tar zcvf hadoop-0.20.2.tar.gz hadoop-0.20.2
          依次傳送到slave服務器上
          [root@localhost hadoop]# scp hadoop-0.20.2.tar.gz root@192.168.1.200:/home/hadoop
          hadoop-0.20.2.tar.gz                                                                              100%   43MB  21.3MB/s   00:02   
          [root@localhost hadoop]# scp hadoop-0.20.2.tar.gz root@192.168.1.201:/home/hadoop
          hadoop-0.20.2.tar.gz                                                                              100%   43MB  14.2MB/s   00:03   
          [root@localhost hadoop]# scp hadoop-0.20.2.tar.gz root@192.168.1.203:/home/hadoop
          hadoop-0.20.2.tar.gz                                                                              100%   43MB  21.3MB/s   00:02   
          [root@localhost hadoop]# scp hadoop-0.20.2.tar.gz root@192.168.1.202:/home/hadoop
          hadoop-0.20.2.tar.gz 
          然后依次登錄slave服務器并解壓hadoop文件
          tar zxvf hadoop-0.20.2.tar.gz
           
          好,我們現在可以在master上執行如下命令:
          [root@localhost hadoop]# cd /home/hadoop/hadoop-0.20.2/bin/
          報了一堆錯誤
          總之意思就是說沒有jdk,后來仔細想想 ,確實忘記在slave上安裝jdk了。
          然后按照master上安裝jdk的步驟依次在slave上重復一次。
          所有機器都安裝完JDK之后,繼續到199主服務器上執行
          [root@localhost bin]# ./start-all.sh
          所有服務器執行成功.
          然后可以在瀏覽器上輸入http://192.168.1.199:50070/dfshealth.jsp
          查看master/slave的服務狀態了。
          不過有一點要注意一下,iptables可能限定了某些端口,所有方便起見,還是要關閉master/slave服務器上的iptables的。
          剩下就是開發事宜,我們下次再講,希望解占輝的文章對您有幫助,謝謝!
          參考文獻:
          作者:解占輝(jeffxie@gmail.com)  博客:jeffxie.blog.51cto.com
          posted on 2011-01-04 10:28 哼哼 閱讀(868) 評論(0)  編輯  收藏 所屬分類:
          主站蜘蛛池模板: 盱眙县| 仪陇县| 永春县| 海盐县| 保康县| 广丰县| 响水县| 达拉特旗| 峡江县| 阳谷县| 原平市| 灌阳县| 星座| 沂水县| 刚察县| 永济市| 桓台县| 仪陇县| 郴州市| 丘北县| 临漳县| 尼勒克县| 淮安市| 玉屏| 宝坻区| 永州市| 宝山区| 新晃| 延长县| 南乐县| 子长县| 桐城市| 二手房| 金湖县| 龙陵县| 白河县| 朔州市| 宁蒗| 湘西| 乌海市| 安平县|