架設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