hdfs網路拓撲與機架感知

2021-08-08 00:17:22 字數 1010 閱讀 7043

在了解hdfs建立檔案之前,需要對hdfs網路拓撲有乙個淺顯的認知,繼而對機架感知做乙個簡單的介紹。

在海量資料處理中,其主要限制因素是節點之間資料的傳輸速率

-頻寬稀缺。這裡的想法是將兩個節點間的距離作為頻寬的衡量標準。

hadoop

採用乙個簡單的方法:把網路看作一棵樹,兩個節點間的距離是它們到最近共同祖先的距離總和。該樹中的層次是沒有預先設定的,但是相對於資料中心、機架、正在執行的節點,通常可以設定等級。具體想法是針對以下場景,可用頻寬依次遞減:1)

同一節點上的程序,網路自迴圈,距離為

0,頻寬最強

2)同一機架上的不同節點,距離為23)

同一資料中心中不同機架上的節點,距離為44)

不同資料中心中的節點,距離為

6hadoop

不適合跨資料中心執行。

通過以上網路拓撲的介紹,了解到hdfs在建立檔案的時候,需要考慮兩點:頻寬和可靠性。檔案放到同乙個datanode上,頻寬提公升,但不可靠,放到不同的資料中心,可靠性提高,但是頻寬受限。

所以, hadoop

集群有上千個節點,檔案副本只有

3個,如何選擇節點進行副本儲存,都能兼顧到頻寬和可靠性?

這裡,就用到了機架感知。

各個版本的hadoop在做檔案建立的時候,對於副本的選擇一般都有自己的機架感知策略。像hadoop2.7.2版本,副本選擇策略為:

第乙個副本在

client

所處的節點上,如果客戶端在集群外,隨機選乙個。

第二個副本和第乙個為相同機架

第三個副本位於不同機架

在實際的情況中,如果自定義自己的機架感知策略呢? 1.

建立類實現

介面2.

配置檔案

core-site.xml

3.分發core-site.xml

4.編譯程式,打成

jar,分發所有節點的

hadoop

的classpath

下/hadoop/shared/common/lib

hdfs 機架感知

client 向 active nn 傳送寫請求時,nn為這些資料分配dn位址,hdfs檔案塊副本的放置對於系統整體的可靠性和效能有關鍵性影響。乙個簡單但非優化的副本放置策略是,把副本分別放在不同機架,甚至不同idc,這樣可以防止整個機架 甚至整個idc崩潰帶來的錯誤,但是這樣檔案寫必須在多個機架之...

HDFS 機架感知

實際上需要工程師收到建立乙個指令碼 python sh 指令碼中記錄主機ip和交換機的對應關係。配置的位置是core site.xml最終新增如下配置 usr bin python coding utf 8 import sys rack if name main print rack.get sy...

HDFS網路拓撲概念及機架感知(副本節點擊擇)

網路拓撲概念 在本地網路中,兩個節點被稱為 彼此近鄰 是什麼意思?在海量資料處理中,其主要限制因素是節點之間資料的傳輸速率 頻寬很稀缺。這裡將兩個節點間的頻寬作為距離的衡量標準。節點距離 兩個節點到達最近的共同祖先 如路由器 的距離總和。例如,假設有資料中心d1機架r1中的節點n1。該節點可以表示為...