Hadoop之HDFS HA架構剖析

2021-09-14 08:22:12 字數 1322 閱讀 2749

在偽分布式中hadoop的訪問位址是 hdfs://ip:9000/ 。ip是nn節點所在的位址。但是在ha中nn 的ip是多個的此時,若nn發生切換生產中的,我們原有的程式難道需要重新編寫?這時提供了命名空間的概念,客戶端通過hdfs://namespace:9000/ 訪問hdfs,無需關注具體訪問的nn位址,使用者無感知。

注意:1、namespace不是程序,而是配置對映。

2、客戶端通過包含namespace的請求去尋找active狀態的機器進行通訊,n。

注意:1、zk機器不是部署的越多越好,機器數20~100節點,zk數5/7/9/11臺

2、若機器數大於100臺,zk元件獨佔物理機,不要部署別的程序

3、zk、jn節點數生產約定是奇數個,因為他們的規則都是大於二分之一的節點是才算成功,如4臺和3臺機器的zk集群,掛一台都可用,掛2臺都不可用,多部署一台反而是浪費資源,其次向zk、jn中寫資料也是,寫成功二分之一以上以及才算成功寫入 

4、nn standby節點有時不能切換active,很大時zk選舉夯住的原因

5、zkfc程序數和nn數是一致的

6、jn部署數量和hdfs的請求量以及資料量有關,一般5/7/9

7、jn、zk資料副本數就是集群節點數,故jn以及zk集群數不能太高

ha是為了解決單點問題、通過jn集群共享資料,同步狀態、通過zkfc選舉active、監控狀態,自動備援。

active nn: 操作記錄寫到自己的editlog、同時寫乙份到jn集群

接收dn的心跳和塊報告

接收客戶端的請求

standby nn: 同時接收jn集群的日誌,讀取editlog日誌並顯示執行editlog中的操作(重演),使得自己的元資料和active nn節點保持一致。

接收dn的心跳和塊報告

jounalnode: 用於active standby nn節點的同步資料

一般部署2n+1

zkfc: 單獨的程序 zookeeper fail over control

監控nn監控健康狀態

向zk集群定期傳送心跳,使得自己可以被選舉;

當自己被zk選舉為active的時候,zkfc程序通過rpc協議呼叫使nn節點的狀態變為active, 對外提供實時服務,是無感知的。

擴充套件1:hdfs讀寫請求都是要經過nn,但是hbase不是這樣的,客戶端的讀寫是直接與rs進行通訊,無需先通過hmaster。

HDFS HA 架構分析

單點故障 single point of failure,spof 配置ha要點 規劃集群 131 132 133 namenode namenode journalnode journalnode journalnode datanode datanode datanode 三颱機器分別備份etc...

大資料之Hadoop之HDFS Ha高可用

在偽分布式搭建完事之後,我打算搭建hdfs高可用。因為完全分布式是hadoop 1.0版本,所以我現在要搭建hadoop 2.0版本的就是所謂 的ha高可用,下面簡單的對hadoop2.x版本的介紹 hadoop 2.x由hdfs mapreduce和yarn三個分支構成 hdfs nn feder...

Hadoop學習之HDFS架構 二

hdfs可以跨越大集群中的機器可靠地儲存非常大的檔案,將檔案儲存為一系列的塊,除了最後乙個塊外,所有的塊的大小都是相同的。當然若檔案大小正好為塊大小的倍數則所有塊的大小相同。為了容錯的目的,乙個檔案的塊會被複製成若干份,塊大小和複製因子是可配置的。應用程式可以指定檔案的副本數量,複製因子可以在檔案建...