成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HDFS原理 | 一文讀懂HDFS架構與設計

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

1 前言

HDFS(Hadoop Distributed File System)是我們熟知的Hadoop分布式文件系統,是一個高容錯的系統,能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。HDFS以流式數據訪問模式存儲超大文件,將數據按塊分布式存儲到不同機器上, 并被設計成 適合運行在普通廉價硬件之上。 本文根據Hadoop官網HDFS Architecture這一章節提煉而成, 加上筆者自己的理解,希望能夠幫助讀者快速掌握HDFS 。

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架構與設計

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

4 數據塊與副本機制

HDFS被設計成能夠在一個大集群中跨機器可靠地存儲超大文件。它將每個文件存儲成一系列的數據塊,除了最后一個,所有的數據塊都是同樣大小的。為了容錯,文件的所有數據塊都會有副本。每個文件的數據塊大小和副本系數都是可配置的。應用程序可以指定某個文件的副本數目。副本系數可以在文件創建的時候指定,也可以在之后改變。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)觸發。 如果設置了這兩個屬性,則要達到的第一個閾值將觸發檢查點。

7 總結

本文屬于HDFS入門介紹,主要介紹了HDFS基本架構、副本機制,機架感知及元數據管理等方面內容 。

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2021-12-16 14:45:09

https架構服務端

2018-09-29 04:53:37

IoT網關物聯網IoT

2020-12-30 09:05:24

架構微內核系統

2021-05-18 09:48:58

前端開發架構

2022-04-26 06:04:11

零信任網絡安全

2022-05-12 08:01:18

KubernetesDocker容器

2023-01-09 08:14:08

GoHttpServer

2022-05-12 10:53:42

keepalivevrrp協議

2022-09-21 16:56:16

設計模式微服務架構

2023-11-08 08:21:52

MVPMVVMMVI

2023-12-22 19:59:15

2021-08-04 16:06:45

DataOps智領云

2021-10-20 07:18:51

Linux延時隊列

2021-10-15 14:28:30

React 組件渲染

2022-09-22 09:00:46

CSS單位

2025-04-03 10:56:47

2018-09-28 14:06:25

前端緩存后端

2022-11-06 21:14:02

數據驅動架構數據

2022-10-20 08:01:23

2021-12-29 18:00:19

無損網絡網絡通信網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕免费中文 | 国产日韩一区二区三免费高清 | 成人午夜性成交 | 人人99 | 亚洲一区二区视频在线观看 | 亚洲精品一区二 | 成人片免费看 | 很黄很污的网站 | 成人二区 | 亚洲欧美精品国产一级在线 | 成人国产精品入口免费视频 | 久久99精品久久久久子伦 | 欧美日韩在线免费 | 在线视频成人 | 亚洲免费在线观看 | 欧美电影一区 | 精品欧美一区二区三区久久久 | 久久免费香蕉视频 | 免费观看一级特黄欧美大片 | 久久精品久久久 | 黄色av网站在线观看 | 精品久久精品 | 一区二区三区在线 | 国户精品久久久久久久久久久不卡 | 国产成人jvid在线播放 | 在线观看国产 | 国产一区二区三区免费视频 | 欧美日韩一区二区在线 | 日韩精品a在线观看图片 | 国产精品一区二区三区在线 | 亚洲人成人一区二区在线观看 | 午夜国产一级 | 中文字幕国产高清 | 欧美中文字幕一区二区 | 日韩精品一区二区三区在线播放 | 久久国产精品视频 | av国产精品毛片一区二区小说 | 美女黄网 | 亚洲码欧美码一区二区三区 | 亚洲午夜精品 | 中文字幕日韩一区 |