1. 程式人生 > >HDFS中高可用性HA的講解

HDFS中高可用性HA的講解

安全 密碼登錄 using itl dfs 鏡像文件 端口號 and 元數據

HDFS中高可用性HA的講解

HDFS Using QJM

  HA使用的是分布式的日誌管理方式

一:概述

1.背景

  如果namenode出現問題,整個HDFS集群將不能使用。

  是不是可以有兩個namenode呢

    一個為對外服務->active

    一個處於待機->standby

    他們的之間共享的元數據交 nameservice

2.HDFS HA的幾大中重點

  1)保證兩個namenode裏面的內存中存儲的文件的元數據同步

    ->namenode啟動時,會讀鏡像文件

  2)變化的記錄信息同步

  3)日誌文件的安全性

    ->分布式的存儲日誌文件

      ->2n+1個,使用副本數保證安全性

    ->使用zookeeper監控

      ->監控兩個namenode,當一個出現了問題,可以達到自動故障轉移。

      ->如果出現了問題,不會影響整個集群

      ->zookeeper對時間同步要求比較高。

  4)客戶端如何知道訪問哪一個namenode

    ->使用proxy代理

    ->隔離機制

    ->使用的是sshfence

    ->兩個namenode之間無密碼登錄

  5)namenode是哪一個是active

    ->zookeeper通過選舉選出zookeeper。

    ->然後zookeeper開始監控,如果出現文件,自動故障轉移。

二:準備

3.規劃集群

  namenode    namenode

  journalnode   journalnode    journalnode -->日誌的分布,這是日誌節點,考慮的是日誌的安全性。

  datanode     datanode      datanode

4.關閉所有的進程

  技術分享

5.保存分布式的源數據,復制一份用來HDFS HA的檢測。

  先是第一臺,先將分布式的etc/hadoop,保存為dist-hadoop,保存源數據。

  同時,新建tmp。

  至於第二臺以及第三臺,在分發之間再進行配置。

  技術分享

三:配置文件

6.將core-site.xml中的文件系統刪除,並添加新的文件系統

  以前的是使用是配置一臺,現在配置多態namenode,使用的方式是nameservices的名稱的方式。

  技術分享

  添加配置

  技術分享

7.配置hdfs-site.xml

  技術分享

8.繼續配置hdfs-site.xml

  dfs.nameservices的配置

  技術分享

  dfs.ha.namenodes.[nameservice ID]的配置

  包括rpc,http的namenodde地址。

  技術分享

  dfs.namenode.shared.edits.dir的配置

  這是journalnode的地址

  技術分享

  dfs.journalnode.edits.dir 的配置

  這是journalnode的日誌存儲的目錄

  先新建目錄:

  技術分享

  技術分享

  dfs.client.failover.proxy.provider的配置

  技術分享

  dfs.ha.fencing.methods的配置

  使用的方式為ssh攔截

  技術分享

  

  

9.配置完成,在分發之前先進行的是目錄的規劃

  技術分享

  技術分享

10.分發

  技術分享

四:啟動

11.啟動三臺的日誌節點

  技術分享

  技術分享

12.格式化第一臺虛擬機

  因為是共享數據,所以格式化一臺虛擬機即可。

  技術分享

13.緊接著,同步元數據(在第二臺上寫命令)

  最好是bin/hdfs namenode -help查看

  技術分享

14.啟動namenode(兩臺虛擬機)

  技術分享

15.啟動三臺了datanode

  技術分享

16.觀看兩臺的啟動狀態

  技術分享

  技術分享

17.強制切換狀態

  1)、查找幫助命令,屬於bin/hdfs haadmin

  技術分享

  2)、具體命令

  技術分享

18.結果

  1)、

  技術分享

  2)、

  技術分享

五:再次測試

19.在HDFS上新建目錄並上傳文件

  技術分享

20.殺死第一臺的namenode,進行測試

  技術分享

21.將avtove的狀態切換到第二臺

  技術分享

22.看第一臺是否可以觀看hdfs中的文件

  如果可以,說明,HA發揮作用了。

  因為這時proxy提供的接口變成nn2.

  技術分享

六:自動故障轉移

  前提:關閉所有的進程。

  依賴:zookeeper的監控,組件為:ZKFC。

  啟動以後都是standby,選舉一個active。

  規劃:

  namenode    namenode

  ZKFC     ZKFC

  journalnode   journalnode    journalnode

  datanode     datanode      datanode

  

23.配置core-site.xml

  添加zookeeper的服務,包括主機名和端口號。

  技術分享

24.配置hdfs-site.xml

  添加自動故障轉移的使能。

  技術分享

25.分發

  技術分享

26.確定關閉所有的進程

  這一步是開始的基礎。

26.開啟三臺的zookeeper服務

  先開啟監控。

  技術分享

27.初始化HA在zookeeper中的狀態bin/hdfs zkfc -formatZK

  在zookepper上創建znode節點。

  技術分享

27.觀察成功與否

  進入zookeeper目錄

  命令:bin/zkCli.sh

  技術分享

28.啟動sbin/start-dfs.sh

  前兩臺虛擬機會出現DFZKFailoverController。

  如果沒有開啟DFZKFailoverController,可以手動開啟,命令是sbin/hadoop-daemon.sh start zkfc。

  技術分享

 

七:簡單檢測

29.展示前兩臺的虛擬機狀態

  技術分享

  技術分享

30.殺死第二臺的虛擬機

  技術分享

31.結果

  這時,第一臺虛擬機變成active。

  技術分享

HDFS中高可用性HA的講解