天天看點

Hadoop叢集環境下網絡架構的設計與優化

大資料時代,研究大資料的IT 廠商把研究重心放在優化大資料系統軟體架構、優化業務邏輯、優化資料分析算法、優化節點性能等方向,而忽略了大資料環境基礎設定中網絡環節的評估和優化。本文介紹了思科公司在Hadoop 叢集環境下的網絡架構設計與優化經驗。

Hadoop叢集環境下網絡架構的設計與優化

大資料Hadoop環境網絡特性Hadoop 叢集中的各節點通過網絡連接配接起來,而且MapReduce 中的以下過程會在網絡中傳輸資料。

(1)寫資料。當向HDFS 寫入初始資料或者大塊資料時,會發生資料寫入過程。寫入的資料塊需要備份到其他節點,需要在網絡中傳輸這些資料。

(2)作業執行。

① Map 階段。在算法的Map 階段,幾乎不需要在網絡中傳輸資料。在Map 開始階段,當HDFS 資料沒有本地性(資料塊不在本地存儲,需要從其他節點拷貝)時,才需在網絡中傳輸資料。

② Shuffle 階段。這是作業執行中在網絡中傳輸資料的階段,資料傳輸的程度依賴于作業。Mapper 階段的輸出内容,會在這個時候傳輸到Reducer 進行排序。

③ Reduce 階段。因為Reducer 需要的資料已經從Shuffle 階段傳來,是以此階段不需要網絡傳輸資料。

④ Output 複制。MapReduce 的輸出作為檔案存儲在HDFS 上。當将輸出結果寫入HDFS 時,産生的備份會在網絡中傳輸。

(3)讀資料。當應用程式如網站、索引或者SQL資料庫從HDFS 讀取資料時,會發生資料讀取的過程。另外,網絡對Hadoop 的控制層非常重要,比如HDFS 的信令和運維操作,以及MapReduce 架構都受到網絡影響。

五種網絡特性

思科公司針對Hadoop 叢集環境下的網絡環境進行了一個測試,測試結果顯示,一個有彈性的網絡對Hadoop 叢集非常重要;對Hadoop 叢集具有重要影響的網絡特性,以其影響程度從大到小依次排序為:網絡可用性和彈性、Burst 流量突發處理和隊列深度、網絡過載比、Datanode 網絡接入和網絡延遲。

(1)網絡可用性和彈性。要部署一個高備援性和可擴充的網絡,支援Hadoop 叢集的增長。在Datanode之間部署多條鍊路的技術要比那些有單點失效或兩點失效的技術要好。交換機和路由器已經在業界被證明能夠為伺服器提供網絡可用性。

(2)Burst 流量突發處理和隊列深度。HDFS 的有些操作和MapReduce Job 會産生突發流量,如向HDFS加載檔案或者把結果檔案寫入HDFS 都需要通過網絡。網絡如果處理不了突發流量,就會丢棄資料包,是以适當的緩存可以緩解突發流量的影響。確定選擇使用緩存和隊列的交換機和路由器,來有效處理流量突發。

(3)網絡過載比。一個好的網絡設計需要考慮到網絡中關鍵節點的擁塞情況。一個ToR 交換機從伺服器接收20Gbps 的資料,但是隻有2 個1Gbps 的上聯口會造成資料包丢失(10:1 的過載比),嚴重影響叢集的性能。過度配置的網絡的價格又非常昂貴。一般情況下,伺服器接入層可以接受的過載比在4:1 左右,接入層和彙聚層之間,或者核心層的過載比在2:1左右。

(4)Datanode 網絡接入。要基于叢集工作負荷來推薦帶寬配置。一般叢集中的節點有1 到2 根1GB 的上聯口。是否選擇10Gbps 的伺服器要權衡價格和性能。

(5)網絡延遲。交換機和路由器延遲的變化對叢集性能的影響有限。相比網絡延遲,應用層延遲對任務的影響比例更大。但是網絡的延遲會對應用系統造成潛在的影響,例如造成不必要的應用切換等。

原文釋出時間為:2014年04月14日

本文作者:中國大資料

本文來自雲栖社群合作夥伴至頂網,了解相關資訊可以關注至頂網。