1. 程式人生 > >hadoop之hdfs詳解之一

hadoop之hdfs詳解之一

HDFS 是單臺或叢集偽分散式部署

NameNode 簡稱NN SecondaryNameNode簡稱SNN DataNode簡稱DN NN、DN、SNN部署在同一臺機器上

hdfs啟動的命令指令碼:sbin/start-dfs.sh:即將linux檔案上傳到hdfs儲存裡面,相當於windows上傳檔案到安裝在電腦上的百度雲盤上 命令位置:bin/hdfs dfs -ls /

1、block塊(hadoop官網)以位元組為單位,表示檔案塊的大小

在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述 引數:dfs.blocksize 值:134217728 官方的配置是128M ,不滿128M也算是佔用一個塊的大小 例如 一個檔案130M ,130/128=1…2M,即該檔案有兩個塊:128M 2M 一個檔案260M,260/128=2…4M,即該檔案有3個塊:128M 128M 4M

2、檔案副本數

dfs.replication 1 / 3(正常生產上檔案副本數是3個) 指的是一個塊的複製數(資料冗餘) 實際塊數:塊數 * 塊數副本數 實際儲存空間:檔案大小 * 塊數副本數 在這裡插入圖片描述

3、HDFS架構設計:主從架構

NN 主 名稱節點 DN 從 資料節點 SNN 第二主 第二名稱節點(可換成NN節點,但是轉換需要時間,會使資料丟失)

(1)NN NN是檔案系統的名稱空間(維護檔案目錄結構系統,負責統籌整個檔案系統的對映關係) 它是儲存以下資料的: a.檔名稱 b.檔案目錄結構 c.檔案屬性(建立時間、許可權、副本數) d.檔案對應哪些資料塊,資料塊對應分佈到哪些datanode節點上(對映關係) 注意: blockmap(檔案對應哪些資料塊,資料塊對應分佈在哪些機器上)------對映關係反映 namenode節點不會持久化儲存這種對映關係,叢集在啟動時和執行時,datanode定期傳送blockreport 給namenode,以此namenode在記憶體中動態維護這種對映關係! 作用:管理檔案系統的名稱空間,維護檔案系統樹,以兩種檔案永久儲存在磁碟上: 名稱空間映象檔案fsimage 編輯日誌editlog

(2)DN DN是儲存資料塊和塊的校驗和(檔案傳輸可能丟位元組數,塊可能損壞,使用塊的校驗和顯示異常程序) 與NN通訊: 通過netty a.每隔3秒傳送一個心跳包 b.每10次心跳傳送一個blockReport 主要作用: 檔案資料塊的讀寫(讀取和寫錄檔案的資料塊,上傳檔案時,寫錄資料塊,檢視檔案時,讀取資料塊)

(3)SNN 儲存:fsimage + editlog(定期備份儲存NN的核心檔案(目錄樹檔案),但是資料可能會丟失) 作用:定期合併fsimage+editlog檔案為新的fsimage,推送給NN,稱為檢查點checkpoint 引數:dfs.namenode.checkpoint.period:3600s(每1h檢查備份一次) fsimage:映象檔案 —讀寫操作記錄形成的目錄檔案系統樹 editlog: 操作日誌 —讀寫的操作記錄

client客戶端是要寫資料到第一個塊,第一個塊寫進第二個塊,第二個塊寫進第三個塊… 如果檔案是有兩個塊,一個塊有3個副本數,一般是寫完第一個塊的副本數之後再寫第二個塊,以此類推 另外讀寫都需經過NN

假如: fsimage:全量14:00 editlog:增量14:00-15:00 15:00 時的映象檔案為14:00fsimage + 14:00~15:00editlog 合併成一個新的image 15:00 fsimage :15:00 的操作記錄存放在15:00以後的操作日誌中 (? 說的有點不明不白,放圖)在這裡插入圖片描述 SNN合併新的fsimage映象檔案,將新的映象檔案推給namenode,namenode生成新的fsimage,editlog生成新的操作日誌editlog。

4、副本放置策略

伺服器機架rack:存放機器 資料是以塊儲存在datanode的節點上

第一個副本儲存規則: 假設我提交檔案的所在機器就是datanode節點上,那麼第一個塊就是儲存在本節點上:就近原則; 如果不是datanode節點,就隨機挑選一臺磁碟不太慢的cpu不太繁忙的節點上。

第二個副本儲存規則:跨機架 放置於第一個副本的不同的機架節點上。

第三個副本儲存規則: 放置於與第二個副本相同的機架的不同的節點上。

第一個副本寫完後複製給第二個副本,第二個副本寫完後複製給第三個副本,第三個副本寫完後反饋給第一個副本

HDFS架構圖官網自己看

over✌

----------------------------------------------------------------未完待續-----------------------------------------------