天天看點

Hadoop架構:HDFS高可用環境配置

在單點或者少數節點故障的情況下,叢集還可以正常的提供服務,HDFS高可用機制可以通過配置Active/Standby兩個NameNodes節點實作在叢集中對NameNode的熱備來消除單節點故障問題,如果單個節點出現故障,可通過該方式将NameNode快速切換到另外一個節點上。

本文源碼:GitHub·點這裡 || GitEE·點這裡

Hadoop架構:HDFS高可用環境配置

基于兩個NameNode做高可用,依賴共享Edits檔案和Zookeeper叢集;

每個NameNode節點配置一個ZKfailover程序,負責監控所在NameNode節點狀态;

NameNode與ZooKeeper叢集維護一個持久會話;

如果Active節點故障停機,ZooKeeper通知Standby狀态的NameNode節點;

在ZKfailover程序檢測并确認故障節點無法工作後;

ZKfailover通知Standby狀态的NameNode節點切換為Active狀态繼續服務;

ZooKeeper在大資料體系中非常重要,協調不同元件的工作,維護并傳遞資料,例如上述高可用下自動故障轉移就依賴于ZooKeeper元件。

服務清單

HDFS檔案

YARN排程

單服務

共享檔案

Zk叢集

hop01

DataNode

NodeManager

NameNode

JournalNode

ZK-hop01

hop02

ResourceManager

ZK-hop02

hop03

SecondaryNameNode

ZK-hop03

建立目錄

拷貝Hadoop目錄

配置core-site.xml

配置hdfs-site.xml,添加内容如下

依次啟動journalnode服務

删除hopHA下資料

NN1格式化并啟動NameNode

NN2同步NN1資料

NN2啟動NameNode

檢視目前狀态

Hadoop架構:HDFS高可用環境配置

在NN1上啟動全部DataNode

NN1切換為Active狀态

Hadoop架構:HDFS高可用環境配置

配置hdfs-site.xml,新增内容如下,同步叢集

配置core-site.xml,新增内容如下,同步叢集

關閉全部HDFS服務

啟動Zookeeper叢集

hop01初始化HA在Zookeeper中狀态

hop01啟動HDFS服務

NameNode節點啟動ZKFailover

這裡hop01和hop02先啟動的服務狀态就是Active,這裡先啟動hop02。

Hadoop架構:HDFS高可用環境配置

結束hop02的NameNode程序

等待一下檢視hop01狀态

Hadoop架構:HDFS高可用環境配置

基本流程和思路與HDFS機制類似,依賴Zookeeper叢集,當Active節點故障時,Standby節點會切換為Active狀态持續服務。

環境同樣基于hop01和hop02來示範。

配置yarn-site.xml,同步叢集下服務

重新開機journalnode節點

在NN1服務格式化并啟動

NN2上同步NN1中繼資料

啟動叢集下DataNode

NN1設定為Active狀态

先啟動hop01即可,然後啟動hop02。

hop01啟動yarn

hop02啟動ResourceManager

檢視狀态

Hadoop架構:HDFS高可用環境配置

推薦閱讀:程式設計體系整理

序号

項目名稱

GitHub位址

GitEE位址

推薦指數

01

Java描述設計模式,算法,資料結構

GitHub·點這裡

GitEE·點這裡

☆☆☆☆☆

02

Java基礎、并發、面向對象、Web開發

☆☆☆☆

03

SpringCloud微服務基礎元件案例詳解

☆☆☆

04

SpringCloud微服務架構實戰綜合案例

05

SpringBoot架構基礎應用入門到進階

06

SpringBoot架構整合開發常用中間件

07

資料管理、分布式、架構設計基礎案例

08

大資料系列、存儲、元件、計算等架構

繼續閱讀