Hadoop框架最核心元件的設計

2021-09-28 17:47:47 字數 1918 閱讀 7547

#hdoop

一、hdfs

hdfs是分布式計算的儲存基石,對於整個集群有單一的命名空間,具有資料一致性,適合一次寫入多次讀取的模型,客戶端在檔案沒有被成功建立之前是無法看到檔案存在的。檔案會被分割成多個檔案塊,每個檔案塊被分配儲存到資料節點上,而且會根據配置由複製檔案塊來保證資料的安全性。

hdfs通過三個重要的角色來進行檔案系統的管理:namenode、datanode和client。namenode可以看做是分布式檔案系統中的管理者,主要負責管理檔案系統的命名空間、集群配置資訊和儲存塊的複製等。

namenode會將檔案系統的metadata儲存在記憶體中,這些資訊主要包括檔案資訊、每乙個檔案對應的檔案塊的資訊和每乙個檔案塊在datanode中的資訊等。

datanode是檔案儲存的基本單元,它將檔案塊(block)儲存在本地檔案系統中,儲存了所有block的metadata,同時周期性地將所有存在的block資訊傳送給namenode。

client就是需要獲取分布式檔案系統檔案的應用程式。

二、mapreduce

mapreduce是乙個高效能的分布式計算框架,用於對海量資料進行並行分析和處理。與傳統資料倉儲和分析技術相比,mapreduce適合處理各種型別的資料,包括結構化、半結構化和非結構化資料。資料量在 tb 和 pb 級別,在這個量級上,傳統方法通常已經無法處理資料。mapreduce 將分析任務分為大量的並行map 任務和reduce彙總任務兩類。map 任務執行在多個伺服器上。指定乙個map(對映)函式,用來把一組鍵值對對映成一組新的鍵值對,指定併發的reduce(歸約)函式,用來保證所有對映的鍵值對中的每乙個共享相同的鍵組。把一堆雜亂無章的資料按照某種特徵歸納起來,然後處理並得到最後的結果。map面對的是雜亂無章的互不相關的資料,它解析每個資料,從中提取出key和value,也就是提取了資料的特徵。經過mapreduce的shuffle階段之後,在reduce階段看到的都是已經歸納好的資料了,在此基礎上我們可以做進一步的處理以便得到結果。

三、yarn

yarn是乙個分布式的資源管理系統,用以提高分布式集群環境下記憶體、io、網路、磁碟等資源的利用率。嚴格來說,yarn只是乙個資源管理的框架,並不是乙個計算框架,mapreduce計算框架需要執行在yarn上。

yarn,最主要的作用是,能夠使得各種應用可以互不干擾的執行在同乙個hadoop系統中,共享整個集群資源。

四、hbase

hbase是執行在hadoop上的一種分布式資料庫,部署於hdfs之上,克服了hdfs在隨機讀寫方面的缺點。

hbase是一種key/value系統,和hive不一樣,hbase能夠在它的資料庫上實時執行,而不是執行mapreduce任務。在hbase中,行是key/value對映的集合,這個對映通過row-key來唯一標識。hbase利用hadoop的基礎設施,可以利用通用的裝置進行水平的擴充套件。

五、hive

hive是乙個構建在hadoop基礎設施之上的資料倉儲。通過hive可以使用hql語言查詢存放在hdfs上的資料。

hql是一種類sql語言,這種語言最終被轉化為map/reduce。雖然hive提供了sql查詢功能,但是hive不能夠進行互動查詢,因為它只能夠在haoop上批量的執行hadoop。

hive被分割槽為**,**又被進一步分割為列簇。列簇必須使用schema定義,列簇將某一型別列集合起來(列不要求schema定義)。例如,「message」列簇可能包含:「to」, 」from」 「date」, 「subject」, 和」body」. 每乙個 key/value對在hbase中被定義為乙個cell,每乙個key由row-key,列簇、列和時間戳。

Hadoop核心元件之YARN

作業系統級別的排程框架,可以讓各種計算框架執行在上面 yarn 不同計算框架可以共享同乙個hdfs集群上的資料,享受整體的資源排程 on yarn的好處 與其他計算框架共享集群資源,按資源需要分配,進而提高集群資源的利用率 spark mapreduce storm flink 1 resource...

hadoop核心元件zookeeper簡介與特點

zookeeper是乙個針對大型分布式系統的可靠協調系統。1 它提供的功能包括 配置維護,名字服務,分布式同步,組服務等 2 它的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效,功能穩定的系統提供給使用者 特點 1,最終一致性 為客戶端展示同一試圖 2,可靠性 如果一條訊息被一台伺服...

(十四)Hadoop核心元件之Yarn的認識

yarn是乙個資源排程平台,負責為運算程式提供伺服器運算資源,相當於乙個分布式的作業系統平台,而mapreduce等運算程式則相當於執行於作業系統之上的應用程式。yarn並不清楚使用者提交的程式的執行機制 yarn只提供運算資源的排程 使用者程式向yarn申請資源,yarn就負責分配資源 yarn中...