基於hadoop2.6.0搭建5個節點的分布式集群


1、前言

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

2、規划

  1、主機規划

 

hadoop1/ 192.168.56.131

hadoop2/ 192.168.56.132

hadoop3/ 192.168.56.133

hadoop4/ 192.168.56.134

hadoop5/ 192.168.56.135

namenode

datanode

resourcemanager

journalnode

zookeeper

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

  2、軟件規划

軟件

版本

位數

說明

centos

6.5

64

 

jdk

1.7

64

穩定版本

zookeeper

3.4.6

 

穩定版本

hadoop

2.6.0

 

穩定版本

  3、用戶規划

節點名稱

用戶組

用戶

密碼

hadoop1

hadoop

hadoop

123456

hadoop2

hadoop

hadoop

123456

hadoop3

hadoop

hadoop

123456

hadoop4

hadoop

hadoop

123456

hadoop5

hadoop

hadoop

123456

  4、目錄規划

名稱

路徑

所有軟件目錄

/usr/hadoop/app/

所有數據和日志目錄

/usr/hadoop/data/

3、集群安裝前的環境檢查

  1、修改主機名

    將5個節點分別修改為hadoop1、hadoop2、hadoop3、hadoop4、hadoop5

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

  2、hosts文件檢查

    所有節點(hadoop1、hadoop2、hadoop3、hadoop4、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文件

  3、禁用防火牆

    永久關閉hadoop1、hadoop2、hadoop3、hadoop4、hadoop5這5個節點的防火牆

    具體請參考,“防火牆

4、配置SSH免密碼通信

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

  1、輸入“ssh-keygen -t rsa”,生成秘鑰

    clip_image001

  2、使用“cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys”命令,把公鑰復制到認證文件(authorized_keys)中,如下所示

    clip_image003

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

    clip_image004

  4、輸入“ssh hadoop1”登錄,第一次登錄需要輸入yes,以后就不需要輸入啦

    clip_image006

    對hadoop2、hadoop3、hadoop4、hadoop5這4個節點上的root用戶也配置ssh,配置過程和上述在hadoop1上為root用戶配置ssh的過程是一樣

  5、在hadoop2、hadoop3、hadoop4、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

  6、將hadoop1中的authorized_keys文件分發到其他節點(hadoop2、hadoop3、hadoop4、hadoop5)上,在hadoop1上,使用scp -r ~/.ssh/authorized_keys root@主機名:~/.ssh/ 命令分發,效果如下

    clip_image018

  7、然后測測看看,出現如下信息,表示配置成功

    clip_image019

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

    clip_image021

5、腳本工具的使用

  腳本工具已放在“shell腳本”目錄下,如果安裝目錄有所變動,請根據需要修改

  1、在hadoop1節點上,創建/usr/hadoop/tools目錄,如下所示

    clip_image022

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

    clip_image023

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

  3、為后綴*.sh的文件增加執行權限

    clip_image024

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

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

    clip_image025

    clip_image026

    clip_image027

6、集群安裝前的環境配置

  1、時鍾同步

    下面通過腳本對所有節點(hadoop1、hadoop2、hadoop3、hadoop4、hadoop5)進行時鍾同步

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

      clip_image029

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

      clip_image031

      具體請參考,“時鍾同步

  2、創建hadoop用戶組、hadoop用戶以及設置密碼

    下面通過腳本在hadoop1、hadoop2、hadoop3、hadoop4、hadoop5這5個節點上分別創建hadoop用戶組、hadoop用戶以及設置密碼123456

    1、創建hadoop用戶組

      clip_image032

    2、創建hadoop用戶,並指定用戶的組為hadoop

      clip_image034

    3、為hadoop用戶設置密碼123456

      clip_image036

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

  3、創建/usr/hadoop/app/、/usr/hadoop/data/目錄, 並修改/usr/hadoop目錄的所有人,所有組為hadoop

    下面通過腳本在hadoop1、hadoop2、hadoop3、hadoop4、hadoop5這5個節點上分別創建/usr/hadoop/app/、/usr/hadoop/data/目錄,並修改/usr/hadoop目錄的所有人,所有組為hadoop

    1、創建/usr/hadoop/app/目錄

      clip_image037

    2、創建/usr/hadoop/data/目錄

      clip_image038

    3、修改/usr/hadoop目錄的所有人,所有組為hadoop

      clip_image040

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

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

    clip_image041

    接着隨意選擇一個節點,這里選擇hadoop4節點,以hadoop用戶登錄,然后進行ssh測試,如果出現如下信息,表示配置成功

    clip_image042

7、JDK安裝

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

    clip_image044

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

  2、解壓jdk

    clip_image045

    clip_image047

    刪除安裝包

    clip_image048

  3、配置環境變量

    clip_image049

    clip_image050

    使配置文件生效

    clip_image051

  4、查看jdk是否安裝成功

    clip_image052

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

  5、通過腳本,將hadoop1中的jdk安裝包分發到其他節點上

    切換到hadoop用戶

    clip_image053

    clip_image054

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

8、Zookeeper安裝

  1、上傳zookeeper到hadoop1節點

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

      clip_image056

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

    2、解壓

      clip_image057

      clip_image059

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

      clip_image060

    4、重命名

      clip_image061

  2、修改Zookeeper中的配置文件

    1、復制一個zoo.cfg文件

      clip_image062

    2、編輯zoo.cfg文件

      clip_image063

      clip_image064

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

      clip_image065

  4、通過腳本runRemoteCmd.sh在所有節點上面創建數據目錄、日志目錄

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

      clip_image067

    2、創建日志目錄(runRemoteCmd.sh "mkdir -p /usr/hadoop/data/zookeeper/zkdatalog" all)

      clip_image069

  5、分別在hadoop1、hadoop2、hadoop3、hadoop4、hadoop5節點上,進入/usr/hadoop/data/zookeeper/zkdata目錄下,創建文件myid,里面的內容分別填充為:1、2、3、4、5, 這里我們以hadoop1為例

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

      clip_image070

    2、編輯myid文件

      clip_image071

      clip_image073

    3、按esc,輸入“:x”保存退出

  6、配置Zookeeper環境變量

    1、vi /etc/profile, 輸入內容,然后按esc,輸入”:x”,保存退出,最后,輸入source /etc/profile,使其立馬生效

      clip_image074

      clip_image075

      clip_image076

    2、其他節點和hadoop1一樣的配置

  7、查看啟動情況

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

      1、啟動Zookeeper

        clip_image078

      2、出現如下信息,說明配置成功

        clip_image079

      3、關閉Zookeeper

        clip_image080

    2、查看所有節點上Zookeeper是否配置成功

      1、使用runRemoteCmd.sh 腳本,啟動所有節點上面的Zookeeper

        clip_image082

      2、查看所有節點上的QuorumPeerMain進程是否啟動

        clip_image083

      3、查看所有節點上Zookeeper的狀態

        clip_image085

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

9、hadoop安裝

  1、上傳hadoop

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

      clip_image087

    2、解壓hadoop-2.6.0.tar.gz

      clip_image088

      clip_image089

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

      clip_image090

    4、重命名

      clip_image091

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

    clip_image092

    clip_image093

    clip_image094

    clip_image095

  3、hdfs

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

      clip_image096

    2、配置hdfs

      1、配置hadoop-env.sh

        clip_image097

        clip_image098

      2、配置core-site.xml

        clip_image100

      3、配置hdfs-site.xml

        clip_image102

        clip_image104

        clip_image106

      4、配置 slave

        clip_image107

        clip_image109

    3、向其他節點分發hadoop安裝包

      clip_image111

    4、配置完畢后,啟動hdfs

      1、啟動所有節點上面的Zookeeper進程(runRemoteCmd.sh "/usr/hadoop/app/zookeeper/bin/zkServer.sh start" zookeeper)

        clip_image113

      2、啟動所有節點上面的journalnode進程(runRemoteCmd.sh "/usr/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode" all)

        clip_image115

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

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

          clip_image116

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

          clip_image117

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

          clip_image118

        4、啟動namenode

          clip_image119

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

        clip_image120

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

        clip_image122

    6、如果上面操作沒有問題,我們可以一鍵啟動hdfs所有相關進程

      clip_image123

      clip_image125

    7、驗證是否啟動成功

      clip_image127

      clip_image129

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

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

      clip_image131

    效果如下:

      clip_image133

      clip_image135

    9、上傳文件至hdfs

      clip_image137

      如果以上操作都沒有問題說明hdfs配置成功

  4、yarn

    1、yarn配置

      1、配置mapred-site.xml(默認沒有mapred-site.xml文件,從mapred-site.xml.template文件復制一份,改名為mapred-site.xml就可以)

        clip_image139

      2、配置yarn-site.xml

        clip_image141

        clip_image143

        clip_image145

        clip_image147

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

      clip_image148

    3、啟動YARN

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

        clip_image150

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

        clip_image152

      3、查看web頁面

        1、訪問hadoop1的web頁面,如下

          clip_image154

        2、訪問hadoop2的web頁面,如下

          clip_image155

      4、查看ResourceManager狀態

        clip_image156

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

      5、Wordcount示例測試

        clip_image158

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

 

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

如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。
如果,您希望更容易地發現我的新博客,不妨點擊一下左下角的【關注我】。
如果,您對我的博客所講述的內容有興趣,請繼續關注我的后續博客,我是【劉超★ljc】。

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

hadoop配置:下載

shell腳本:下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM