HDFS詳解

可以在http://master:50070上訪問hdfs的web頁面。
本文章主題如下:

  • HFDS結(jié)構(gòu)

  • NameNode

  • DataNode

  • Secondary NameNode

  • Block

  • Block副本管理

  • 機(jī)架感知策略

  • HDFS結(jié)構(gòu)

HDFS結(jié)構(gòu).png

Hadoop分布式系統(tǒng) —— HDFS,它是一個(gè)塊結(jié)構(gòu)文件系統(tǒng),它的每個(gè)文件都被分割成許多預(yù)定大小的塊。這些塊被存儲(chǔ)在集群中的一臺(tái)或多臺(tái)機(jī)器上。HDFS遵循主/從結(jié)構(gòu),集群中擁有一臺(tái)單獨(dú)的NameNode(主節(jié)點(diǎn)),其它節(jié)點(diǎn)都是DataNode(從節(jié)點(diǎn))。

  • NameNode

NameNode.png

NameNode維護(hù)并管理著DataNode上的block。
以下是NameNode的功能:

  1. 維護(hù)并管理著DataNode節(jié)點(diǎn);
  • 記錄著集群中所有文件的元數(shù)據(jù)(metadata)信息,比如:block的存儲(chǔ)位置,文件的大小,權(quán)限,層級(jí)關(guān)系等。有兩個(gè)文件關(guān)聯(lián)著元數(shù)據(jù)(metadata):

  • FsImage: 記錄著文件系統(tǒng)命名空間(namespace)自從上一次啟動(dòng)之后的完整狀態(tài)。

  • EditsLog:記錄著相對(duì)于最近的FsImage,客戶端對(duì)文件系統(tǒng)所有修改的信息。

    • 記錄著文件系統(tǒng)中元數(shù)據(jù)所發(fā)生的所有變化,比如:HDFS中的某個(gè)文件被刪除,NameNode立即在EditLog中進(jìn)行記錄。
    • 定期從集群中的所有DataNode接收心跳和塊報(bào)告,用來確認(rèn)DataNode是否宕機(jī)。
    • 保存著HDFS中所有塊的記錄,以及這些塊位于哪個(gè)節(jié)點(diǎn)。
    • 負(fù)責(zé)處理所有塊的副本。
    • 在DataNode宕機(jī)的情況下,NameNode會(huì)為副本選擇新的DataNode,平衡磁盤的使用量,管理DataNode間的通信流量。
  • DataNode

DataNode是HDFS中的從節(jié)點(diǎn),它是將數(shù)據(jù)以ext3或者ext4這種文件格式,存儲(chǔ)在本地的塊服務(wù)器。
以下是DataNode的功能:

  1. 處理文件客戶端的低級(jí)讀寫請(qǐng)求。
  • 向NameNode定期發(fā)送心跳匯報(bào)HDFS總體的健康狀況,默認(rèn)情況下,每3秒發(fā)送一次。

  • Secondary NameNode

它的職責(zé)是輔助NameNode工作,而不是備用節(jié)點(diǎn)。

Secondary-NameNode.png

它的功能如下:

  1. 合并來自NameNode的FsImage和EditLog,并將合并之后的FsImage文件拷貝給NameNode。
  • Block

存儲(chǔ)在DataNode磁盤上的文件塊,默認(rèn)大小是128M(1.x默認(rèn)大小是64M),可通過hdfs-site.xml 文件配置dfs.blocksize 屬性來制定block大小。block文件可以在DataNone的
{dfs.datanode.data.dir}/data/current/XXX/current/finalized/xx/目錄下找到。如果block塊太小,將會(huì)導(dǎo)致一個(gè)文件將會(huì)被分割成非常多的塊,以至于會(huì)有非常多mateData數(shù)據(jù),浪費(fèi)內(nèi)存以及硬盤空間。

HDFS-File-Block.png
  • Block副本管理

Block默認(rèn)是3個(gè),


Replication-Management.png

以在配置文件中設(shè)置。

  • 機(jī)架感知策略

HDFS的存放策略(機(jī)架感知策略)是將一個(gè)副本存放在本地機(jī)架的節(jié)點(diǎn)上,一個(gè)副本放在同一機(jī)架的另一個(gè)節(jié)點(diǎn)上,最后一個(gè)副本放在不同機(jī)架的節(jié)點(diǎn)上

Rack-Awareness.png

機(jī)架感知策略的有點(diǎn):

  1. 提高網(wǎng)絡(luò)性能:這種策略減少了機(jī)架間的數(shù)據(jù)傳輸,這就提高了寫操作的效率,數(shù)據(jù)塊只放在兩個(gè)(不是三個(gè))不同的機(jī)架上,因此減少了讀取數(shù)據(jù)時(shí)需要的網(wǎng)絡(luò)傳輸總帶寬。
  • 避免數(shù)據(jù)丟失:副本分布在不同機(jī)架上不同節(jié)點(diǎn)上,不會(huì)因?yàn)槟硞€(gè)機(jī)架或者節(jié)點(diǎn)宕機(jī)而導(dǎo)致數(shù)據(jù)丟失。

文獻(xiàn):https://www.edureka.co/blog/apache-hadoop-hdfs-architecture/?utm_source=quora&utm_medium=crosspost&utm_campaign=social-media-edureka-ab
http://zheming.wang/blog/2015/07/24/17505A21-0204-48AB-8EBE-EAC911B22821/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 認(rèn)識(shí)HDFS HDFS的特點(diǎn): 高容錯(cuò)性高吞吐量故障的檢測(cè)和自動(dòng)快速恢復(fù)流式的數(shù)據(jù)訪問大數(shù)據(jù)集一次寫入,多次讀寫 ...
    Bloo_m閱讀 3,372評(píng)論 6 8
  • Hadoop2.X后可以劃分為三部分:HDFS、MapReduce和Yarn,本篇主要看一下HDFS。 架構(gòu)圖 進(jìn)...
    忘凈空閱讀 1,105評(píng)論 1 0
  • 目錄 HDFS的工作機(jī)制 概述 HDFS 寫數(shù)據(jù)流程 HDFS 讀數(shù)據(jù)流程 NameNode的工作機(jī)制 NameN...
    Singer_Au閱讀 10,010評(píng)論 0 5
  • 人的一生雖然短暫,但是攏聚點(diǎn)滴,都是一本厚重的傳奇。 情節(jié)不同、經(jīng)歷各異,而主人公是你自己。 ...
    安福楊玉生閱讀 296評(píng)論 0 1
  • 從前的日色變得慢 車,馬,郵件都慢 一生只夠愛一個(gè)人
    FayFan閱讀 291評(píng)論 0 1

友情鏈接更多精彩內(nèi)容