聊聊HDFS RBF第二階段的主要改進

2022-05-05 18:45:10 字數 1570 閱讀 2631

hdfs rbf特性(基於路由的federation解決方案)已經在apache hadoop 3.0.0中正式發布了,此特性的發布將會大大方便於廣大使用者多於多集群的使用。另一方面來說,面對往後日益擴充套件,日益多樣化的環境,單一,同構化的集群執行模式,不會是乙個一勞永逸的方式了,異構,多集群的方式將會是乙個趨勢。其實在目前發布的版本中,hdfs rbf特性單純實現了乙個最基本功能的版本,裡面還有很多地方可以繼續完善,使之與當前的hdfs完全匹配,比如目前還沒有支援的改進點有例如:webhdfs, 安全認證,quota配額支援,acl管控等等。不過不用擔心,這些提到的點,社群都將會在rbf第二階段的工作中進行完善(詳見社群jira: hdfs-12615,想必聽完大家都很期待吧。本文,筆者講帶領大家展望一下這方面的內容。

由於筆者在過去2個月時間內,一直關注和參與了部分hdfs rbf第二階段的工作,所以對這塊還是比較熟悉的。針對目前第二階段的工作進展,主要實現或正在實現了下面一些小特性:

已實現的:

正在實現中:

待定中的內容。這塊內容請繼續往下看,這個屬於比較開放式的話題內容。

這裡的開放式內容指的是針對rbf第二階段工作來說,這並不是必須要完成的工作。這部分的內容是一些比較大膽的創新和改進,主要有以下3點內容。

這個大家可以模擬於目前hdfs中的balancer工具。在federation的環境下,每個子集群就相當於是乙個「節點」,這些「節點」共同構成了乙個大的集群。當rbf對外呈現為乙個邏輯上的單一集群時,那麼就可能存在所寫入的資料出現分布不均衡的現象,裡面的原因就有可能有很多種了。比如說a掛載點的路徑下,寫入的資料頻率明顯要高於其它目錄,久而久之,a掛載點的目標路徑集群所寫入的資料自然就多了。這個時候我們可以用一種集群間的balancer工具來做這種平衡,而對於集群間的資料拷貝,我們可以利用現成的distcp工具來幫我做這件事情。一旦資料跨集群拷貝完畢,還有一步很重要的操作就是更新掛載點資訊。因為對於源路徑來說,目標路徑已經換位址了。

說到動態hdfs集群,我們得先明白它的相對面-靜態hdfs 集群在這裡的含義。比方說,我們已經搭好若干套獨立的hdfs集群,然後將他們加入到rbf內,那麼這種模式就是靜態的集群。而我們在這裡所設想的動態模式是指我們只需事先定義好若干namenode(子集群),然後我們只需往裡加datanode即可,這些datanode會根據一定的分配策略自動被router分配到所屬的子集群內。在這裡,相當於router扮演了一種資源管控的角色。為什麼會有這種想法呢?因為在現有模式下,datanode需要依賴配置檔案來決定它應該向哪個namenode進行匯報,這種模式在集群進行擴容時顯得比較麻煩,其實這個完全交給router來做。也就是我們要增加router和datanode節點直接的通訊。在未來,甚至我們可以做到集群間的節點遷移,這些也由router來控制,對使用者無感知。在這種理想的情況下,datanode節點對於使用者來說只是一種資源,根本無須人工介入進行集群的配置。

掛載點的合併指的是將目前的掛載點在某種關係上的合併。而不是當前各自完全獨立的情況。

闡述了這麼多,想必大家對hdfs rbf的新功能特性已經是非常期待了吧,如果不出意外的情況下,這些改進將會出現在即將發布的版本apache hadoop的2.9.1和3.0.1版本內,到時大家可以留意一下。

第二階段小結

資料結構基本概念 資料 資料即資訊的載體,是能夠輸入到計算機中並且能被計算機識別,儲存和處理的符號總稱 資料元素 資料元素是資料的基本單位,又稱之為記錄。一般,資料元素由若干基本項 字段,域,屬性 組成。資料結構 資料結構指的是資料元素及資料元素之間的相互關係,或組織資料的形式 資料之間的結構關係 ...

第二階段小結

先是pta上的作業 這題要求我們熟練的掌握類之間的繼承與多型的使用,在類與類之間傳遞資訊時不能弄混,要弄清楚單一職責原則。這一題主要考察繼承與多型,泛型容器的應用。接下來是學習通上的課後作業 第乙個是單向鍊錶 單向鍊錶由乙個個的節點組成,這些節點都帶有下乙個節點的引用,最後乙個節點指向null,這樣...

vivi的第二階段

vivi 的第二階段 vivi 的第二階段是從 main 函式開始,同一般的 c語言程式一樣,該函式在 init main.c 檔案中,總共可以分為 8個步驟。1 函式開始,通過 putstr vivi banner 列印出vivi 的版本。vivi banner 在 init version.c ...