架設Hadoop HA

跳過偽分布式直接架設HA,相關概念請看Youtube

Hadoop Server 分工內容

架設七台Server,取名分別是Hadoop1 - 7,每台Server分工內容如下

  • hadoop1 Name Node、 zkfc

  • hadoop2 Name Node、zkfc

  • hadoop3 Resource Manager

  • hadoop4 Resource Manager

  • hadoop5 Zookeeper、Journal Node、Data Node、Node Manager

  • hadoop6 Zookeeper、Journal Node、Data Node、Node Manager

  • hadoop7 Zookeeper、Journal Node、Data Node、Node Manager

配置hadoop1 - 7 Server

設定Hosts

其台都要設定,下方配置檔的IP是我目前環境的實際IP

$ vi /etc/hosts

加入以下IP

12.345.6.145 hadoop1
12.345.6.144 hadoop2
12.345.6.143 hadoop3
12.345.6.142 hadoop4
12.345.6.141 hadoop5
12.345.6.140 hadoop6
12.345.6.139 hadoop7

關掉防火牆跟SELinux

建議先關掉,以後可以在加回去

新增hadoop帳號

每一台Server都要新增Hadoop帳號,並登入Hadoop身份

建立無密登入

每一台Server彼此之間都要作無密登入設定 (包括自己)

建立Public Key

設定無密登入,haddop1 - 7,都要設定,下面指令只是某台Server跟hadoop1設定無密登入的指令

安裝Java

設定必要環境變數

請在.bashrc新增以下環境變數內容

使環境變數生效

安裝Hadoop

如果未來要支援Hbase 2.1.0,就要安裝Hadoop2.7.7版本

下載Hadoop 2.7.7到hadoop1 Server的hadoop User家目錄

配置core-site.xml

配置內容

配置hdfs-site.xml

配置內容

配置yarn-site.xml

配置內容

配置core-site.xml

配置內容

配置slaves

題外話,在hadoop 3.x版本slaves檔案變成workers

配置內容

將Hadoop從Hadoop1 Server複製到其他Server的hadoop User家目錄

安裝Zookeeper

下載Zookeeper 3.4.12到Hadoop5 Server的Hadoop User家目錄

配置zoo.conf

配置內容

將Zookeeper從hadoop5 Server複製到其他Server的hadoop User家目錄

配置MyId

配置hadoop5 Server MyId

配置hadoop6 Server MyId

配置hadoop7 Server MyId

啟動順序

啟動hadoop 5 - 7 Zookeeper

啟動hadoop 5 - 7 Journal Node

格式化HDFS Name Node

在Hadoop1 Server格式化,並將結果Copy 到Hadoop2 Server

格式化ZKFC

在hadoop1 Server啟動HDFS

在Hadoop1啟動時,會同時啟動Hadoop2的Name Node

在hadoop3 Server啟動Map Reduce

在hadoop4 Server 啟動 Map Reduce 另一個 Resource Manager

測試

在hadoop3 Server測試Map Reduce範例

如果執行成功就代表部屬成功

GitHub範例

請下載我在GitHub的範例作測試,測試前請在本機端設定hadoop1 - 7的host

Last updated