• <menu id="w2i4a"></menu>
  • logo Hadoop教程

    文檔首頁(yè)>>Hadoop教程>>Hadoop教程:Hadoop分布式環(huán)境搭建

    Hadoop教程:Hadoop分布式環(huán)境搭建


    前面,我們已經(jīng)在單機(jī)上把Hadoop運(yùn)行起來(lái)了,但我們知道Hadoop支持分布式的,而它的優(yōu)點(diǎn)就是在分布上突出的,所以我們得搭個(gè)環(huán)境模擬一下。

    在這里,我們采用這樣的策略來(lái)模擬環(huán)境,我們使用3臺(tái)ubuntu機(jī)器,1臺(tái)為作主機(jī)(master),另外2臺(tái)作為從機(jī)(slaver)。同時(shí),這臺(tái)主機(jī),我們就用第一章中搭建好的環(huán)境來(lái)。

    我們采用與第一章中相似的步驟來(lái)操作:

    1、運(yùn)行環(huán)境搭建

    在前面,我們知道,運(yùn)行hadoop是在linux上運(yùn)行的。所以我們單機(jī)就在ubuntu上運(yùn)行著。所以同樣,2臺(tái)從機(jī),同樣采用linux系統(tǒng)。為了節(jié)省資源,本人試驗(yàn)時(shí)用了2臺(tái)centOS系統(tǒng),而且是采用命令行的方式,沒(méi)有用圖形方式。

    系統(tǒng)中軟件準(zhǔn)備,第一章中我們準(zhǔn)備了subversion ssh ant 和jdk。那在這里,從機(jī)上我們不要這么多了,我們不用再下載、編譯代碼了,從主機(jī)上復(fù)制就行。所以在從機(jī)上只需要安裝ssh 和jdk這兩個(gè):

    先用 sudo apt-get install ssh這個(gè)命令,把SSH安裝起來(lái)。

    注:在centOS中,使用yum install ssh。

    java環(huán)境,可以在網(wǎng)上下載一個(gè)JDK安裝包,如:jdk-6u24-linux-i586.bin

    安裝直接在目錄下運(yùn)行./jdk-6u24-linux-i586.bin即可。

    然后配置jdk目錄:

    先進(jìn)入安裝目錄 cd jdk-6u24-…

    然后輸入 PWD 就可以看到j(luò)ava安裝目錄,復(fù)制下來(lái):

    Hadoop基礎(chǔ)教程

    命令行執(zhí)行:sudo gedit /etc/profile

    在打開(kāi)的文件里,追加:

    export JAVA_HOME=/home/administrator/hadoop/jdk1.6.0_27 //這里要寫(xiě)安裝目錄

    export PATH=${JAVA_HOME}/bin:$PATH

    執(zhí)行source /etc/profile 立即生效

    2、網(wǎng)絡(luò)配置

    要想運(yùn)行分布式環(huán)境,那這3臺(tái)計(jì)算機(jī)(虛擬機(jī))肯定是要聯(lián)網(wǎng)才行。同時(shí),三臺(tái)之前也要暢通無(wú)阻。

    如果直接采用虛擬機(jī),就比較方便了,默在虛擬機(jī)中都使用NAT聯(lián)網(wǎng)方式即可:

    Hadoop基礎(chǔ)教程

    分別進(jìn)入三個(gè)系統(tǒng),用ifconfig命令,可以查到當(dāng)前分配過(guò)來(lái)的IP地址:

    Hadoop基礎(chǔ)教程

    如上圖中可以看到是10.0.0.11。

    如果發(fā)現(xiàn)沒(méi)有eth0,也就是說(shuō)網(wǎng)卡還沒(méi)啟用或分配好地址,則可以手動(dòng)分配:

    ifconfig eth0 10.0.0.12 netmask 255.255.255.0 //設(shè)置eht0 的IP地址

    route add default gw 10.0.0.2 //設(shè)置網(wǎng)關(guān)

    在VMware中,怎么看到網(wǎng)關(guān)呢,可以在菜單 編輯->虛擬網(wǎng)絡(luò)編輯器 中看到:

    Hadoop基礎(chǔ)教程

    網(wǎng)關(guān)一定要配置對(duì),否則光IP地址后,機(jī)器之前互想ping不通的。

    在配置好IP后,可以嘗試ping一下網(wǎng)關(guān)和其他機(jī)器,看是否能通。

    在這里,我們3臺(tái)機(jī)IP為:

    主機(jī) master : 10.0.0.10

    從機(jī)1 salter1 :10.0.0.11

    從機(jī)2 salter2 :10.0.0.12

    有了3臺(tái)機(jī)器的IP地址,我們想,后面在配置中肯定會(huì)用到,但為了方便以后IP地址的變動(dòng),所以我們還是用另名吧。在window中,我們知道在C:\Windows\System32\driver\etc下,有個(gè)host文件,修改后,就可以將IP換成別名了。

    在linux中,同樣有這個(gè)文件,在/etc/hosts中。所以編輯一下: $vi /etc/hosts:

    Hadoop基礎(chǔ)教程

    文件保存后,就可以試一下ping master ping node1來(lái)代替IP地址了。

    這個(gè)操作需要在三個(gè)機(jī)器上都操作一下。

    現(xiàn)在網(wǎng)絡(luò)了,為了后面操作,在所有部署運(yùn)行hadoop的機(jī)器上,都必須使用相同的帳號(hào)。所以需要在2臺(tái)從機(jī)上創(chuàng)建一個(gè)與主機(jī)一樣的帳號(hào)、密碼:

    比如都用zjf帳號(hào): $user add zjf 設(shè)置密碼: $passwd zjf 進(jìn)入該帳號(hào): $su zjf

    有可能機(jī)器上會(huì)有防火墻,影響后面的遠(yuǎn)程,所以可以先關(guān)一下:

    $ service iptables stop

    3、配置SSH

    第1章中我們了解了SSH的功能,在這里就可真正派用處了。

    我們?cè)趍aster機(jī)中,用ssh試一下連接node1:

    Hadoop基礎(chǔ)教程

    可以看到,需要輸入密碼才能夠進(jìn)入。遠(yuǎn)程啟動(dòng)所有從機(jī)時(shí),一個(gè)個(gè)輸入密碼,也不是個(gè)好事,得配置下:

    1)在從機(jī)node1中先實(shí)現(xiàn)自己登陸自己時(shí)不要輸入密碼。

    這個(gè)在第1章中已經(jīng)描述。這里就不多述了。結(jié)果就是:

    Hadoop基礎(chǔ)教程

    2)讓主結(jié)點(diǎn)(master)能通過(guò)SSH免密碼登錄兩個(gè)子結(jié)點(diǎn)(slave)

    為了實(shí)現(xiàn)這個(gè)功能,兩個(gè)slave結(jié)點(diǎn)的公鑰文件中必須要包含主結(jié)點(diǎn)的公鑰信息,這樣當(dāng)master就可以順利安全地訪問(wèn)這兩個(gè)slave結(jié)點(diǎn)了。操作過(guò)程如下:

    Hadoop基礎(chǔ)教程

    3$cd ~/.ssh

    $scp zjf@master:~/.ssh/id_dsa.pub ./master_dsa.pub

    $cat master_dsa.pub >> authorized_keys

    好了,配置完后,回到master機(jī)器中,再來(lái)試一下ssh node1:

    Hadoop基礎(chǔ)教程

    OK,成功進(jìn)入,沒(méi)有要輸入密碼。

    同樣,把node2也安這個(gè)方式操作一下。

    4、配置hadoop

    在第一章配置基礎(chǔ)上,我們需要增加兩項(xiàng)配置:

    Hadoop基礎(chǔ)教程

    在conf文件夾下,找到masters文件,編輯,在里面輸入master后保存:

    Hadoop基礎(chǔ)教程

    在同文件夾下,找到slaves,編輯,在里面輸入node1 node2后保存:

    Hadoop基礎(chǔ)教程

    打開(kāi)conf下core-site.xml:

    Hadoop基礎(chǔ)教程

    里面的localhost換成master。

    打開(kāi)conf下的marped-site.xml:

    Hadoop基礎(chǔ)教程

    同樣,也是里面的localhost換成master。

    5、復(fù)制hadoop包

    前 面,在一臺(tái)機(jī)器上部署時(shí),我們的hadoop包是通過(guò)SVN下載了源碼,然后再用ant編譯出來(lái)的,但在這里,從機(jī)上就不用這么麻煩了,我們可以從主機(jī)上 復(fù)制過(guò)去。如何復(fù)制呢? 遠(yuǎn)程登陸我們用SSH,遠(yuǎn)程復(fù)制就用SCP。在復(fù)制前要注意,我們?cè)谥鳈C(jī)中hadoop存放在什么位置,在從機(jī)中也要存放在該位置才行。

    比如,在主機(jī)中,我們存放于test下,所以在2臺(tái)node上,都創(chuàng)建一下test文件夾。

    然后在主機(jī)上執(zhí)行:scp -r hadoop-0.20.2/ node1:~/test 然后會(huì)看到刷屏,表示在復(fù)制了。

    同樣執(zhí)行: scp -r hadoop-0.20.2/ node2:~/test

    好了,現(xiàn)在兩臺(tái)從機(jī)上也都有了hadoop包了。

    6、運(yùn)行

    在主機(jī)上,進(jìn)入hadoop-0.20.2目錄,運(yùn)行bin/start-all.sh,即可以啟動(dòng)整個(gè)分布式系統(tǒng)了。

    然后在主機(jī)上運(yùn)行jps:

    Hadoop基礎(chǔ)教程

    在從機(jī)上運(yùn)行jps:

    Hadoop基礎(chǔ)教程

    在主服務(wù)器上打開(kāi) http://localhost:50070,可以看到:

    Hadoop基礎(chǔ)教程

    有兩個(gè)活動(dòng)的結(jié)點(diǎn),點(diǎn)進(jìn)去,可以看到:

    Hadoop基礎(chǔ)教程

    點(diǎn)下面的結(jié)點(diǎn)可以查看詳細(xì),如果點(diǎn)開(kāi)頁(yè)面打不開(kāi),則有可能是機(jī)器防火墻阻止了。

    可以進(jìn)入相應(yīng)機(jī)器,執(zhí)行

    $ service iptables stop

    來(lái)關(guān)閉防火墻。

    我們可以嘗試上傳一下文件:

    $bin/hadoop fs -put ~/Tool/eclipse-SDK-3.7.1-linux-gtk.tar.gz test1.tar.gz

    可以看到:

    Hadoop基礎(chǔ)教程

    再上傳一下文件:

    $bin/hadoop fs -put ~/Tool/eclipse-SDK-3.7.1-linux-gtk.tar.gz test2.tar.gz

    可以看到:

    Hadoop基礎(chǔ)教程

    但發(fā)現(xiàn)不平衡,都跑一臺(tái)上了。所以可以執(zhí)行命令

    $bin/hadoop balancer -threshold 1

    這樣,再來(lái)看:

    Hadoop基礎(chǔ)教程

    平衡了。

     原文鏈接:http://www.kwstu.com/ArticleView/hadoop_201408181042089382

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();