亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HDFS架構與設計原理

發布時間:2021-09-18 11:06:00 來源:億速云 閱讀:141 作者:chen 欄目:大數據

本篇內容主要講解“HDFS架構與設計原理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“HDFS架構與設計原理”吧!

1 前言

HDFS(Hadoop Distributed File  System)是我們熟知的Hadoop分布式文件系統,是一個高容錯的系統,能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。

2 HDFS特點

流式數據訪問:這點初學者可能不好理解,流式數據訪問模式是HDFS數據訪問特點之一,是指收集到部分數據就開始處理,而不是收集到全部數據再處理,否則會導致比較大的延遲,也會消耗大量內存。

大規模數據集:HDFS對大文件存儲比較友好,HDFS上的一個典型文件大小一般都在GB至TB級。

一次寫入多次讀取:HDFS數據訪問特點之一,文件經過創建、寫入和關閉之后就不能夠改變。這也簡化了數據一致性問題,并且使高吞吐量的數據訪問成為可能。

不支持低延時數據訪問:這也是HDFS數據訪問的特點,HDFS關系的是高吞吐量,不適合那些低延時數據訪問的應用。

單用戶寫入,不支持任意修改:HDFS的數據以讀為主,只支持單個寫入者,并且寫操作總是以添加的形式在文末追加,不支持在任意位置進行修改。

3 HDFS架構

HDFS采用Master/Slave架構。一個HDFS集群有兩個重要的角色,分別是Namenode和Datanode。Namenode是管理節點,負責管理文件系統的命名空間(namespace)以及客戶端對文件的訪問。Datanode是實際存儲數據的節點。HDFS暴露了文件系統的命名空間,用戶能夠以操作文件的形式在上面操作數據。HDFS架構圖如下:

HDFS架構與設計原理

HDFS上的文件是以數據塊的形式存放的,這些數據塊通常存儲在一組Datanode上。Namenode執行文件系統的命名空間操作,比如打開、關閉、重命名文件或目錄。它也負責確定數據塊到具體Datanode節點的映射。Datanode負責處理文件系統客戶端的讀寫請求,并在Namenode的統一調度下執行數據塊的創建、刪除和復制。

4 數據塊與副本機制

HDFS被設計成能夠在一個大集群中跨機器可靠地存儲超大文件。它將每個文件存儲成一系列的數據塊,除了最后一個,所有的數據塊都是同樣大小的。為了容錯,文件的所有數據塊都會有副本。每個文件的數據塊大小和副本系數都是可配置的。應用程序可以指定某個文件的副本數目。副本系數可以在文件創建的時候指定,也可以在之后改變。HDFS中的文件都是一次性寫入的,并且嚴格要求在任何時候只能有一個寫入者。

HDFS架構與設計原理

Namenode全權管理數據塊的復制,它周期性地從集群中的每個Datanode接收心跳信號和塊狀態報告(Blockreport)。接收到心跳信號意味著該Datanode節點工作正常。塊狀態報告包含了一個該Datanode上所有數據塊的列表。

5 機架感知與副本存放

副本的存放是HDFS可靠性和性能的關鍵,HDFS在這方面做了優化,它采用一種稱為 機架感知 (Rack Awareness)  的策略來改進數據的可靠性、可用性和網絡帶寬的利用率。

大型HDFS  實例一般運行在跨越多個機架的計算機組成的集群上,不同機架上的兩臺機器之間的通訊需要經過交換機。在大多數情況下,同一個機架內的兩臺機器間的帶寬會比不同機架的兩臺機器間的帶寬大。

通過一個機架感知的過程,Namenode可以確定每個Datanode所屬的機架id。一個簡單但沒有優化的策略就是將副本存放在不同的機架上。這樣可以有效防止當整個機架失效時數據的丟失,并且允許讀數據的時候充分利用多個機架的帶寬。這種策略設置可以將副本均勻分布在集群中,有利于當組件失效情況下的負載均衡。但是,因為這種策略的一個寫操作需要傳輸數據塊到多個機架,這增加了寫的代價。

在大多數情況下,副本系數是3, HDFS存放策略  是將一個副本存放在本地機架的節點上,一個副本放在同一機架的另一個節點上,最后一個副本放在不同機架的節點上。這種策略減少了機架間的數據傳輸,這就提高了寫操作的效率。機架的錯誤遠遠比節點的錯誤少,所以這個策略不會影響到數據的可靠性和可用性。于此同時,因為數據塊只放在兩個(不是三個)不同的機架上,所以此策略減少了讀取數據時需要的網絡傳輸總帶寬。這一策略在不損害數據可靠性和讀取性能的情況下改進了寫的性能。

6 HDFS元數據管理

Namenode上保存著HDFS的命名空間。對于任何對文件系統元數據產生修改的操作,Namenode都會使用一種稱為EditLog的事務日志記錄下來。例如,在HDFS中創建一個文件,Namenode就會在Editlog中插入一條記錄來表示;同樣地,修改文件的副本系數也將往Editlog插入一條記錄。Namenode在本地操作系統的文件系統中存儲這個Editlog。整個文件系統的命名空間,包括數據塊到文件的映射、文件的屬性等,都存儲在一個稱為FsImage的文件中,這個文件也是放在Namenode所在的本地文件系統上。

Namenode在內存中保存著整個文件系統的命名空間和文件數據塊映射(Blockmap)的映像。當Namenode啟動,或者檢查點被周期性觸發時,它從硬盤中讀取Editlog和FsImage,將所有Editlog中的事務作用在內存中的FsImage上,并將這個新版本的FsImage從內存持久化到本地磁盤上。然后HDFS刪除舊的Editlog,因為這個舊  的Editlog的事務都已經作用在FsImage上了。這個過程被稱為一個 檢查點 (checkpoint)。  在檢查點期間,Editlog的更改將應用于FsImage。 checkpoint 觸發時機  ,可以是以給定的時間間隔(dfs.namenode.checkpoint.period,單位秒)觸發,或者在給定數量的文件系統事務累積之后(dfs.namenode.checkpoint.txns)觸發。  如果設置了這兩個屬性,則要達到的第一個閾值將觸發檢查點。

到此,相信大家對“HDFS架構與設計原理”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辽中县| 土默特右旗| 枝江市| 阿瓦提县| 崇阳县| 威海市| 德钦县| 黎平县| 陕西省| 鹤山市| 海门市| 无极县| 阜康市| 泰宁县| 斗六市| 峡江县| 曲水县| 阿克苏市| 武城县| 景泰县| 阳山县| 大城县| 丹东市| 泸溪县| 从江县| 泸定县| 庄浪县| 阿克陶县| 娄烦县| 彰化县| 肥乡县| 定州市| 南和县| 托里县| 于田县| 兴宁市| 东海县| 耿马| 成武县| 河间市| 静宁县|