基於hadoop2.6.0搭建5個節點的分佈式集羣

一、前言node

  咱們使用hadoop2.6.0版本配置Hadoop集羣,同時配置NameNode+HA、ResourceManager+HA,並使用zookeeper來管理Hadoop集羣linux

二、規劃git

  一、主機規劃web

 

hadoop1/ 192.168.56.131shell

hadoop2/ 192.168.56.132bootstrap

hadoop3/ 192.168.56.133centos

hadoop4/ 192.168.56.134bash

hadoop5/ 192.168.56.135app

namenodessh

datanode

resourcemanager

journalnode

zookeeper

    Journalnode和ZooKeeper保持奇數個,最少很多於3個節點

  二、軟件規劃

軟件

版本

位數

說明

centos

6.5

64

 

jdk

1.7

64

穩定版本

zookeeper

3.4.6

 

穩定版本

hadoop

2.6.0

 

穩定版本

  三、用戶規劃

節點名稱

用戶組

用戶

密碼

hadoop1

hadoop

hadoop

123456

hadoop2

hadoop

hadoop

123456

hadoop3

hadoop

hadoop

123456

hadoop4

hadoop

hadoop

123456

hadoop5

hadoop

hadoop

123456

  四、目錄規劃

名稱

路徑

全部軟件目錄

/usr/hadoop/app/

全部數據和日誌目錄

/usr/hadoop/data/

三、集羣安裝前的環境檢查

  1、修改主機名

    將5個節點分別修改成hadoop一、hadoop二、hadoop三、hadoop四、hadoop5

    修改主機名,請參考「修改主機名

  2、hosts文件檢查

    全部節點(hadoop一、hadoop二、hadoop三、hadoop四、hadoop5)的hosts文件都要配置靜態ip與hostname之間的對應關係

    192.168.56.131 hadoop1

    192.168.56.132 hadoop2

    192.168.56.133 hadoop3

    192.168.56.134 hadoop4

    192.168.56.135 hadoop5

    具體請參考,「配置hosts文件

  三、禁用防火牆

    永久關閉hadoop一、hadoop二、hadoop三、hadoop四、hadoop5這5個節點的防火牆

    具體請參考,「防火牆

四、配置SSH免密碼通訊

  下面對hadoop1節點上的root用戶配置ssh

  一、輸入「ssh-keygen -t rsa」,生成祕鑰

    clip_image001

  二、使用「cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys」命令,把公鑰複製到認證文件(authorized_keys)中,以下所示

    clip_image003

  三、確保.ssh目錄的權限是700(使用chmod 700 .ssh命令修改),確保.ssh目錄下全部文件(authorized_key、id_rsa、id_rsa.pub)的權限是600(使用chmod 600 .ssh/*命令修改),以下所示

    clip_image004

  四、輸入「ssh hadoop1」登陸,第一次登陸須要輸入yes,之後就不須要輸入啦

    clip_image006

    對hadoop二、hadoop三、hadoop四、hadoop5這4個節點上的root用戶也配置ssh,配置過程和上述在hadoop1上爲root用戶配置ssh的過程是同樣

  五、在hadoop二、hadoop三、hadoop四、hadoop5這4個節點上都執行一次「cat ~/.ssh/id_rsa.pub | ssh root@hadoop1 'cat >> ~/.ssh/authorized_keys'」命令,將這4個節點上的共鑰id_ras.pub拷貝到hadoop1中的authorized_keys文件中,以下

    clip_image008

    clip_image010

    clip_image012

    clip_image014

    拷貝完成後,hadoop1中的authorized_keys文件內容以下

    clip_image016

  六、將hadoop1中的authorized_keys文件分發到其餘節點(hadoop二、hadoop三、hadoop四、hadoop5)上,在hadoop1上,使用scp -r ~/.ssh/authorized_keys root@主機名:~/.ssh/ 命令分發,效果以下

    clip_image018

  七、而後測測看看,出現以下信息,表示配置成功

    clip_image019

    說明:第一次可能會出現以下信息,輸入yes就能夠了,之後就不會再出現啦

    clip_image021

五、腳本工具的使用

  腳本工具已放在「shell腳本」目錄下,若是安裝目錄有所變更,請根據須要修改

  一、在hadoop1節點上,建立/usr/hadoop/tools目錄,以下所示

    clip_image022

  二、將腳本經過rz命令上傳到/usr/hadoop/tools目錄

    clip_image023

    具體使用rz命令,請參考「上傳下載rz、sz命令

  三、爲後綴*.sh的文件增長執行權限

    clip_image024

    具體使用chmod命令,請參考「權限chmod命令

  四、將/usr/hadoop/tools目錄配置到PATH路徑中

    clip_image025

    clip_image026

    clip_image027

六、集羣安裝前的環境配置

  一、時鐘同步

    下面經過腳本對全部節點(hadoop一、hadoop二、hadoop三、hadoop四、hadoop5)進行時鐘同步

    一、輸入runRemoteCmd.sh "cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime" all

      clip_image029

    二、輸入runRemoteCmd.sh "ntpdate pool.ntp.org" all

      clip_image031

      具體請參考,「時鐘同步

  二、建立hadoop用戶組、hadoop用戶以及設置密碼

    下面經過腳本在hadoop一、hadoop二、hadoop三、hadoop四、hadoop5這5個節點上分別建立hadoop用戶組、hadoop用戶以及設置密碼123456

    一、建立hadoop用戶組

      clip_image032

    二、建立hadoop用戶,並指定用戶的組爲hadoop

      clip_image034

    三、爲hadoop用戶設置密碼123456

      clip_image036

      具體請參考,「用戶相關命令

  三、建立/usr/hadoop/app/、/usr/hadoop/data/目錄, 並修改/usr/hadoop目錄的全部人,全部組爲hadoop

    下面經過腳本在hadoop一、hadoop二、hadoop三、hadoop四、hadoop5這5個節點上分別建立/usr/hadoop/app/、/usr/hadoop/data/目錄,並修改/usr/hadoop目錄的全部人,全部組爲hadoop

    一、建立/usr/hadoop/app/目錄

      clip_image037

    二、建立/usr/hadoop/data/目錄

      clip_image038

    三、修改/usr/hadoop目錄的全部人,全部組爲hadoop

      clip_image040

      具體請參考,「目錄相關命令

  四、爲每一個節點中hadoop用戶配置ssh,這裏爲了省事,直接拷貝相應節點中root用戶的配置給對應的hadoop用戶,默認hadoop家目錄是/home/hadoop

    clip_image041

    接着隨意選擇一個節點,這裏選擇hadoop4節點,以hadoop用戶登陸,而後進行ssh測試,若是出現以下信息,表示配置成功

    clip_image042

七、JDK安裝

  一、將本地下載好的jdk1.7,上傳至hadoop1節點下的/home/hadoop/app目錄中

    clip_image044

    可使用rz上傳,請參考「上傳下載rz、sz命令

  二、解壓jdk

    clip_image045

    clip_image047

    刪除安裝包

    clip_image048

  三、配置環境變量

    clip_image049

    clip_image050

    使配置文件生效

    clip_image051

  四、查看jdk是否安裝成功

    clip_image052

    出現以上信息,說明配置成功

  五、經過腳本,將hadoop1中的jdk安裝包分發到其餘節點上

    切換到hadoop用戶

    clip_image053

    clip_image054

    在hadoop2, hadoop3, hadoop4, hadoop5節點上,重複步驟三、4,完成jdk配置

八、Zookeeper安裝

  一、上傳zookeeper到hadoop1節點

    一、將本地下載好的zookeeper-3.4.6.tar.gz安裝包,上傳至hadoop1節點下的/home/hadoop/app目錄下

      clip_image056

      可使用rz上傳,請參考「上傳下載rz、sz命令

    二、解壓

      clip_image057

      clip_image059

    三、刪除zookeeper-3.4.6.tar.gz安裝包

      clip_image060

    四、重命名

      clip_image061

  二、修改Zookeeper中的配置文件

    一、複製一個zoo.cfg文件

      clip_image062

    二、編輯zoo.cfg文件

      clip_image063

      clip_image064

  三、經過腳本deploy.sh將Zookeeper安裝目錄拷貝到其餘節點上面,輸入deploy.sh zookeeer/ /usr/hadoop/app slave,以下所示

      clip_image065

  四、經過腳本runRemoteCmd.sh在全部節點上面建立數據目錄、日誌目錄

    一、建立數據目錄(runRemoteCmd.sh "mkdir -p /usr/hadoop/data/zookeeper/zkdata" all)

      clip_image067

    二、建立日誌目錄(runRemoteCmd.sh "mkdir -p /usr/hadoop/data/zookeeper/zkdatalog" all)

      clip_image069

  五、分別在hadoop一、hadoop二、hadoop三、hadoop四、hadoop5節點上,進入/usr/hadoop/data/zookeeper/zkdata目錄下,建立文件myid,裏面的內容分別填充爲:一、二、三、四、5, 這裏咱們以hadoop1爲例

    一、進入/usr/hadoop/data/zookeeper/zkdata目錄

      clip_image070

    二、編輯myid文件

      clip_image071

      clip_image073

    三、按esc,輸入「:x」保存退出

  六、配置Zookeeper環境變量

    一、vi /etc/profile, 輸入內容,而後按esc,輸入」:x」,保存退出,最後,輸入source /etc/profile,使其立馬生效

      clip_image074

      clip_image075

      clip_image076

    二、其餘節點和hadoop1同樣的配置

  七、查看啓動狀況

    一、查看hadoop1節點上Zookeeper是否配置成功

      一、啓動Zookeeper

        clip_image078

      二、出現以下信息,說明配置成功

        clip_image079

      三、關閉Zookeeper

        clip_image080

    二、查看全部節點上Zookeeper是否配置成功

      一、使用runRemoteCmd.sh 腳本,啓動全部節點上面的Zookeeper

        clip_image082

      二、查看全部節點上的QuorumPeerMain進程是否啓動

        clip_image083

      三、查看全部節點上Zookeeper的狀態

        clip_image085

        出現4個follower,一個leader,表示Zookeeper安裝成功

九、hadoop安裝

  一、上傳hadoop

    一、將下載好的hadoop-2.6.0.tar.gz安裝包,上傳至hadoop1節點中的/usr/hadoop/app目錄下

      clip_image087

    二、解壓hadoop-2.6.0.tar.gz

      clip_image088

      clip_image089

    三、刪除hadoop-2.6.0.tar.gz安裝包

      clip_image090

    四、重命名

      clip_image091

  二、配置hadoop家目錄下的.bash_profile

    clip_image092

    clip_image093

    clip_image094

    clip_image095

  三、hdfs

    一、切換到/usr/hadoop/app/hadoop/etc/hadoop/目錄下

      clip_image096

    二、配置hdfs

      一、配置hadoop-env.sh

        clip_image097

        clip_image098

      二、配置core-site.xml

        clip_image100

      三、配置hdfs-site.xml

        clip_image102

        clip_image104

        clip_image106

      四、配置 slave

        clip_image107

        clip_image109

    三、向其餘節點分發hadoop安裝包

      clip_image111

    四、配置完畢後,啓動hdfs

      一、啓動全部節點上面的Zookeeper進程(runRemoteCmd.sh "/usr/hadoop/app/zookeeper/bin/zkServer.sh start" zookeeper)

        clip_image113

      二、啓動全部節點上面的journalnode進程(runRemoteCmd.sh "/usr/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode" all)

        clip_image115

      三、在hadoop1(主節點)上執行格式化

        一、切換到/usr/hadoop/app/hadoop/

          clip_image116

        二、namenode格式化(bin/hdfs namenode -format)

          clip_image117

        三、格式化高可用(bin/hdfs zkfc -formatZK)

          clip_image118

        四、啓動namenode

          clip_image119

      四、與此同時,須要在hadoop2(備節點)上執行數據同步(bin/hdfs namenode -bootstrapStandby)

        clip_image120

      五、hadoop2同步完數據後,緊接着在hadoop1節點上,按下ctrl+c來結束namenode進程。 而後關閉全部節點上面的journalnode進程(runRemoteCmd.sh "/usr/hadoop/app/hadoop/sbin/hadoop-daemon.sh stop journalnode" all)

        clip_image122

    六、若是上面操做沒有問題,咱們能夠一鍵啓動hdfs全部相關進程

      clip_image123

      clip_image125

    七、驗證是否啓動成功

      clip_image127

      clip_image129

      出現上面信息,說明啓動成功

    八、使用bin/hdfs haadmin -failover nameService1 nameService2命令,將hadoop2切換成active, hadoop1切換成standby,其中,nameService一、nameService2是在hdfs-site.xml文件中的dfs.ha.namenodes. clusterl指定的

      clip_image131

    效果以下:

      clip_image133

      clip_image135

    九、上傳文件至hdfs

      clip_image137

      若是以上操做都沒有問題說明hdfs配置成功

  四、yarn

    一、yarn配置

      一、配置mapred-site.xml(默認沒有mapred-site.xml文件,從mapred-site.xml.template文件複製一份,更名爲mapred-site.xml就能夠)

        clip_image139

      二、配置yarn-site.xml

        clip_image141

        clip_image143

        clip_image145

        clip_image147

    二、向其餘節點同步yarn配置(deploy.sh etc/ /usr/hadoop/app/hadoop/ all)

      clip_image148

    三、啓動YARN

      一、在hadoop1節點上執行(sbin/start-yarn.sh)

        clip_image150

      二、在hadoop2節點上面執行(sbin/yarn-daemon.sh start resourcemanager)

        clip_image152

      三、查看web頁面

        一、訪問hadoop1的web頁面,以下

          clip_image154

        二、訪問hadoop2的web頁面,以下

          clip_image155

      四、查看ResourceManager狀態

        clip_image156

        resourceManager的名字是yarn.resourcemanager.ha.rm-ids屬性指定的

      五、Wordcount示例測試

        clip_image158

        若是上面執行沒有異常,說明YARN安裝成功

 

  至此,基於hadoop2.6搭建5個節點的分佈式集羣搭建完畢

若是,您認爲閱讀這篇博客讓您有些收穫,不妨點擊一下右下角的【推薦】。
若是,您但願更容易地發現個人新博客,不妨點擊一下左下角的【關注我】。
若是,您對個人博客所講述的內容有興趣,請繼續關注個人後續博客,我是【劉超★ljc】。

本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。

hadoop配置:下載

shell腳本:下載

相關文章
相關標籤/搜索