中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

hdfs基本概念(設計思想 特性 工作機制 上傳下載 namenode存儲元數據機制)

發布時間:2020-07-09 16:14:57 來源:網絡 閱讀:583 作者:馬吉輝 欄目:大數據

2019/2/16 星期六

hdfs基本概念(設計思想 特性 工作機制 上傳下載 namenode存儲元數據機制)
1、hdfs總的設計思想:
設計目標:提高分布式并發處理數據的效率(提高并發度和移動運算到數據)
分而治之:將大文件、大批量文件,分布式存放在大量獨立的服務器上,以便于采取分而治之的方式對海量數據進行運算分析;
重點概念:文件切塊,副本存放,元數據,位置查詢,數據讀寫流

2、hdfs的shell操作 //見響應的單獨文檔

3、hdfs的一些概念
Hdfs分布式文件系統的基本工作機制及相關概念解析 //見畫圖

hdfs基本概念(設計思想 特性 工作機制 上傳下載 namenode存儲元數據機制)

首先,它是一個文件系統,有一個統一的命名空間——目錄樹, 客戶端訪問hdfs 文件時就是
通過指定這個目錄樹中的路徑來進行
其次,它是分布式的,由很多服務器聯合起來實現功能;
? hdfs 文件系統會給客戶端提供一個統一的抽象目錄樹,Hdfs 中的文件都是分塊(block)
存儲的,塊的大小可以通過配置參數( dfs.blocksize)來規定,默認大小在hadoop2.x 版本
中是128M,老版本中是64M
? 文件的各個block 由誰來進行真實的存儲呢?----分布在各個datanode 服務節點上,而
且每一個block 都可以存儲多個副本(副本數量也可以通過參數設置dfs.replication,默
認值是3)
? Hdfs 中有一個重要的角色:namenode,負責維護整個hdfs 文件系統的目錄樹,以及每
一個路徑(文件)所對應的block 塊信息(block 的id,及所在的datanode 服務器)
? hdfs 是設計成適應一次寫入,多次讀出的場景,并不支持文件的修改
(hdfs 并不適合用來做網盤應用,因為,不便修改,延遲大,網絡開銷大,成本太高)

hdfs 切片的定義 概念
1:定義一個切片大小:可以通過參數來調節,默認情況下等于“hdfs 中設置的blocksize”,通常是128M
2:獲取輸入數據目錄下所有待處理文件List
3:遍歷文件List,逐個逐個文件進行切片
for(file:List)
對file 從0 偏移量開始切,每到128M 就構成一個切片,比如a.txt(200M),就會被切成兩個切片: a.txt: 0-128M, a.txt :128M-256M
再比如b.txt(80M),就會切成一個切片, b.txt :0-80M

HDFS Block復制策略
–第1個副本放在客戶端所在節點
?如果是遠程客戶端,block會隨機選擇節點
?系統會首先選擇空閑的DataNode節點
–第2個副本放在不同的機架節點上
–第3個副本放在與第2個副本同一機架的不同機器上
–很好的穩定性、負載均衡,較好的寫入帶寬、讀取性能,塊均勻分布
–機架感知:將副本分配到不同的機架上,提高數據的高容錯性
–以節點為備份對象

hdfs基本概念(設計思想 特性 工作機制 上傳下載 namenode存儲元數據機制)

4、特性:
容量可以線性擴展
數據存儲高可靠
分布式運算處理很方便
數據訪問延遲較大,不支持數據的修改操作
適合一次寫入多次讀取的應用場景

5、hdfs 的工作機制
HDFS 集群分為兩大角色:NameNode、DataNode
NameNode 負責管理整個文件系統的元數據
DataNode 負責管理用戶的文件數據塊

6、namenode 工作機制
namenode 職責:
1、響應客戶端請求 //客戶端去請求hdfs的時候都會先去找namenode
2、維護目錄樹 //客戶端去讀或者寫文件的時候都會去指定一個目錄,這個目錄是hdfs的目錄,這個目錄有namenode管理
3、管理元數據(查詢,修改) *****
//什么是元數據
文件的描述信息:某一個路徑的文件有幾個block,每一個block在那些datanode上面有存儲,一個文件的副本數量是幾?這些信息就是元數據,元數據很重要,不能發生丟失或者錯誤,那么在客戶端請求的時候,就有可能請求不到。
提示:內存中存儲了一份完整的元數據,包括目錄樹結構,以及文件和數據塊和副本存儲地 的映射關系;

7、datanode 的工作機制
1、Datanode 工作職責:
2、存儲管理用戶的文件塊數據
3、定期向namenode 匯報自身所持有的block 信息(通過心跳信息上報)
4、上傳一個文件,觀察文件的block 具體的物理存放情況
在每一臺datanode 機器上的這個目錄:
/home/hadoop/app/hadoop-2.4.1/tmp/dfs/data/current/BP-193442119-192.168.2.120-1432457733
977/current/finalized


2019/2/18 星期一

hdfs 寫數據流程(put)

hdfs基本概念(設計思想 特性 工作機制 上傳下載 namenode存儲元數據機制)

1、根namenode 通信請求上傳文件,namenode 檢查目標文件是否已存在,父目錄是否存在
2、namenode 返回是否可以上傳
3、client 請求第一個block 該傳輸到哪些datanode 服務器上
4、namenode 返回3 個datanode 服務器ABC
5、client 請求3 臺dn 中的一臺A 上傳數據(本質上是一個RPC 調用,建立pipeline),A收到請求會繼續調用B,然后B 調用C,將真個pipeline 建立完成,逐級返回客戶端
6、client 開始往A 上傳第一個block(先從磁盤讀取數據放到一個本地內存緩存),以packet為單位,A 收到一個packet 就會傳給B,B 傳給C;A 每傳一個packet 會放入一個應答隊列等待應答
7、當一個block 傳輸完成之后,client 再次請求namenode 上傳第二個block 的服務器。

hdfs 讀數據流程(get)

hdfs基本概念(設計思想 特性 工作機制 上傳下載 namenode存儲元數據機制)

1、跟namenode 通信查詢元數據,找到文件塊所在的datanode 服務器
2、挑選一臺datanode(就近原則,然后隨機)服務器,請求建立socket 流
3、datanode 開始發送數據(從磁盤里面讀取數據放入流,以packet 為單位來做校驗)
4、客戶端以packet 為單位接收,現在本地緩存,然后寫入目標文件

小結:
在這里我們描述的是hdfs的讀寫數據的流程是比較順利的一種情況,這上面的每一個階段都有可能出現異常,那hdfs對于每個異常也是很完善的,容錯性非常的高,這些異常處理的邏輯比較復雜,我們暫時不做深入的描述,搞懂正常的讀寫流程就ok了。


Hdfs中namenode管理元數據的機制 //元數據的 CheckPoint
如圖:

hdfs基本概念(設計思想 特性 工作機制 上傳下載 namenode存儲元數據機制)

hdfs 元數據是怎么存儲的?
A、內存中有一份完整的元數據(特定數據結構)
B、磁盤有一個“準完整”的元數據的鏡像文件
C、當客戶端對hdfs 中的文件進行新增或者修改操作,首先會在edits 文件中記錄操作日志,當客戶端操作成功后,相應的元數據會更新到內存中;每隔一段時間,會由secondary namenode 將namenode 上積累的所有edits 和一個最新的fsimage 下載到本地,并加載到內存進行merge(這個過程稱為checkpoint)
D、checkpoint 操作的觸發條件配置參數:
dfs.namenode.checkpoint.check.period=60 #檢查觸發條件是否滿足的頻率,60 秒
dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary
#以上兩個參數做checkpoint 操作時,secondary namenode 的本地工作目錄
dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}
dfs.namenode.checkpoint.max-retries=3 #最大重試次數
dfs.namenode.checkpoint.period=3600 #兩次checkpoint 之間的時間間隔3600 秒
dfs.namenode.checkpoint.txns=1000000 #兩次checkpoint 之間最大的操作記錄
E、namenode 和secondary namenode 的工作目錄存儲結構完全相同,所以,當namenode故障退出需要重新恢復時,可以從secondary namenode 的工作目錄中將fsimage 拷貝到namenode 的工作目錄,以恢復namenode 的元數據
F、可以通過hdfs 的一個工具來查看edits 中的信息
bin/hdfs oev -i edits -o edits.xml

向AI問一下細節

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

AI

杭锦后旗| 西乌珠穆沁旗| 中江县| 宝丰县| 万州区| 肇庆市| 体育| 道孚县| 朝阳市| 措美县| 德庆县| 桃园县| 黑河市| 鹤峰县| 白玉县| 加查县| 玉溪市| 洪雅县| 富宁县| 柳州市| 宜城市| 平邑县| 抚顺县| 共和县| 同仁县| 衡阳县| 绥中县| 青海省| 三穗县| 明水县| 镇原县| 临邑县| 伊通| 获嘉县| 临洮县| 邵阳县| 公主岭市| 云阳县| 五大连池市| 宜兰市| 肥城市|