04、Hadoop框架HDFS NN、SNN、DN工作原理
文章目錄
- Hadoop框架HDFS NN、SNN、DN工作原理
- HDFS概述
- HDFS架構(gòu)
- NameNode
- Secondary NameNode
- Secondary NameNode的工作流程
- 什么時候checkpiont
- DataNode
- 上傳一個CentOS-7.5-x86_64-DVD-1804.iso大文件來體現(xiàn)分布式管理系統(tǒng)
- 通過ui頁面觀察文件被block劃分
- HDFS的Trash回收站
Hadoop框架HDFS NN、SNN、DN工作原理
HDFS概述
- 數(shù)據(jù)量越來越多,在一個操作系統(tǒng)管轄的范圍存不下了,那么就分配到更多的操作系統(tǒng)管理的磁盤中,但是不方便管理和維護,因此迫切需要一種系統(tǒng)來管理多臺機器上的文件,這就是分布式文件管理系統(tǒng)。
- 是一種允許文件通過網(wǎng)絡在多臺主機上分享的文件系統(tǒng),可讓多機器上的多用戶分享文件和存儲空間。
- 通透性,讓實際上是通過網(wǎng)絡來訪問文件的動作,由程序與用戶看來,就像是訪問本地的磁盤一般。
- 容錯,即是系統(tǒng)中有某些節(jié)點宕機,整體來說系統(tǒng)仍然可以持續(xù)運作而不會有數(shù)據(jù)損失【通過副本機制實現(xiàn)】。
- 分布式文件管理系統(tǒng)很多,hdfs只是其中一種,不適合小文件。
- 其它分布式管理系統(tǒng):GPFS、PVFS、Lustre、PanFS、GoogleFS、淘寶的TFS、GFS等
HDFS架構(gòu)
- 標準的主從架構(gòu)
??可見HDFS將NameNode將文件切分成大小為128mb的block塊,分別隨機存儲到不同的DataNode中
NameNode
- NameNode是整個文件系統(tǒng)的管理節(jié)點(上傳、下載、更改、刪除)。它維護著整個文件系統(tǒng)的文件目錄樹,文件/目錄的元信息和每個文件對應的數(shù)據(jù)快列表。接收用戶的操作請求。
- 文件包括:
- fsimage:元數(shù)據(jù)鏡像文件。存儲某一時段的NameNode內(nèi)元數(shù)據(jù)信息。
- edits:操作日志文件,NameNode啟動后一些新增元信息日志。
- fstime:保存最近異常checkpoint的時間
- 以上這些文件是保存在Linux的文件系統(tǒng)中。
- hdfs-site.xml的dfs.namenode.name.dir屬性
Secondary NameNode
Secondary NameNode的工作流程
- 1、Secondary通知NameNode切換edits文件
- 2、Secondary從NameNode獲得fsimage和edits(通過http)
- 3、Secondary將fsimage載入內(nèi)存,然后開始合并edits
- 4、Secondary將新的fsimage發(fā)回給NameNode
- 5、NameNode用新的fsimage替換舊的fsimage
什么時候checkpiont
- fs.checkpoint.period 指定兩次checkpoint的最大時間間隔默認3600秒(1小時)
- fs.checkpoint.size 規(guī)定edits文件的最大值,一旦超過這個值則強制checkpoint,不管是否到達最大時間間隔 默認是64M
DataNode
- 提供真實文件數(shù)據(jù)的存儲服務
- 文件塊(block):最基本的存儲單位。對于文件內(nèi)容而言,一個文件的長度大小是size,那么從文件的O偏移開始,按照固定的大小,順序?qū)ξ募M行劃分并編號,劃分好的每一個快稱一個Block。2.0以后的HDFS默認Block大小是128MB,以一個256MB文件,共有256/126=2個Block。
- hdfs-size.xml中dfs.blocksize屬性
- 不同于普通文件系統(tǒng)的是,HDFS中,如果一個文件小于一個數(shù)據(jù)塊的大小,并不占用整個數(shù)據(jù)塊存儲空間
- Replication,多副本,默認是三個。
- hdfs-site.xml的dfs.replication屬性
上傳一個CentOS-7.5-x86_64-DVD-1804.iso大文件來體現(xiàn)分布式管理系統(tǒng)
- 將 CentOS-7.5-x86_64-DVD-1804.iso 鏡像文件用Xftp上傳到/usr/local/moudle目錄下
可見 CentOS-7.5-x86_64-DVD-1804.iso 鏡像文件有4.16GB
可分為4.16*1024/128=33.28,33個Block塊(從0開始)
通過ui頁面觀察文件被block劃分
HDFS的Trash回收站
??和Linux系統(tǒng)(桌面環(huán)境)的回收站設計一樣,HDFS會為每一個用戶創(chuàng)建一個回收站目錄:/user/用戶名/.Trash,每一個用戶通過Shell刪除的文件/目錄,fs.trash.interval是在指在這個回收周期之內(nèi),文件實際上是被移動到trash的這個目錄下面,而不是馬上把數(shù)據(jù)刪除掉。等到回收周期真正到了以后,hdfs才會將數(shù)據(jù)真正刪除。默認的單位是分鐘,1440分鐘=60*24,剛好是一天。 配置:在每個節(jié)點(不僅僅是主節(jié)點)上添加配置 core-site.xml,增加如下內(nèi)容:
<property><name>fs.trash.interval</name><value>1440</value> </property>注意:如果刪除的文件過大,超過回收站大小的話會提示刪除失敗
需要指定參數(shù) -skipTrash,意思是跳過回收站刪除,不可恢復
這里不建議使用-skipTrash,否則會造成數(shù)據(jù)的不可恢復
- 刪除CentOS-7.5-x86_64-DVD-1804.iso鏡像文件,跳過回收站
這里只是做個示例,考慮到這個文件占用資源,所以靚仔在這里就講它刪除了
到底啦!覺得靚仔的文章對你學習Hadoop有所幫助的話,一波三連吧!q(≧▽≦q)
總結(jié)
以上是生活随笔為你收集整理的04、Hadoop框架HDFS NN、SNN、DN工作原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#调用Onnx模型
- 下一篇: 免费的.netFramework 混淆工