溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HDFS--數(shù)據(jù)塊概念(閱讀摘要,理解概念前的信息采集)

發(fā)布時(shí)間:2020-08-01 13:01:05 來源:網(wǎng)絡(luò) 閱讀:1709 作者:wxbo1 欄目:大數(shù)據(jù)

1.1、數(shù)據(jù)塊(block)

1.1.1.HDFS(Hadoop Distributed File System)默認(rèn)的最基本的存儲(chǔ)單位是64M的數(shù)據(jù)塊。
HDFS上的文件被劃分為塊大小的多個(gè)分塊,作為獨(dú)立的存儲(chǔ)單元,稱為數(shù)據(jù)塊

1.1.3.不同于普通文件系統(tǒng)的是,HDFS中,如果一個(gè)文件小于一個(gè)數(shù)據(jù)塊的大小,并不占用整個(gè)數(shù)據(jù)塊存儲(chǔ)空間。

每個(gè)磁盤都有默認(rèn)的數(shù)據(jù)塊大小,這是磁盤進(jìn)行數(shù)據(jù)讀/寫的最小單位。構(gòu)建于單個(gè)磁盤之上的文件系統(tǒng)通過磁盤塊來管理該文件系統(tǒng)中的塊,該文件系統(tǒng)塊的大小可以是磁盤塊的整數(shù)倍。文件系統(tǒng)塊一般為幾千字節(jié),而磁盤塊一般為512字節(jié)。這些信息(文件系統(tǒng)塊大?。?duì)于需要讀/寫文件的文件系統(tǒng)用戶來說是透明的。盡管如此,系統(tǒng)仍然提供了一些工具(如df和fsck)來維護(hù)文件系統(tǒng),由它們對(duì)文件系統(tǒng)中的塊進(jìn)行操作。

   首先解釋一下什么是“磁盤塊”。要明確以下:

1、我們知道操作系統(tǒng)與磁盤之間**交流的最小單位**就是磁盤塊,它是一個(gè)虛擬的概念。是對(duì)于操作系統(tǒng)(軟件)來說有意義的概念。

2、磁盤進(jìn)行讀寫的最小單位是扇區(qū),而扇區(qū)是真實(shí)存在的。是硬件部分,是一塊真實(shí)存在的物理區(qū)域。

由于我們經(jīng)常接觸的是軟件部分,而不是硬件部分,所以提的多的是磁盤塊。而不是扇區(qū)。

3、磁盤塊的大?。簤K=扇區(qū)×2^n。因?yàn)榇疟P進(jìn)行讀寫的基本單位是扇區(qū),而操作系統(tǒng)與磁盤之間是塊,所以系統(tǒng)想進(jìn)行讀寫,最節(jié)省的方式就是扇區(qū)的整數(shù)倍。


HDFS的三個(gè)節(jié)點(diǎn):Namenode,Datanode,Secondary Namenode

Namenode:HDFS的守護(hù)進(jìn)程,用來管理文件系統(tǒng)的命名空間,負(fù)責(zé)記錄文件是如何分割成數(shù)據(jù)塊,以及這些數(shù)據(jù)塊分別被存儲(chǔ)到那些數(shù)據(jù)節(jié)點(diǎn)上,它的主要功能是對(duì)內(nèi)存及IO進(jìn)行集中管理。

Datanode:文件系統(tǒng)的工作節(jié)點(diǎn),根據(jù)需要存儲(chǔ)和檢索數(shù)據(jù)塊,并且定期向namenode發(fā)送他們所存儲(chǔ)的塊的列表。

Secondary Namenode:輔助后臺(tái)程序,與NameNode進(jìn)行通信,以便定期保存HDFS元數(shù)據(jù)的快照。


HDFS Federation(聯(lián)邦HDFS):

通過添加namenode實(shí)現(xiàn)擴(kuò)展,其中每個(gè)namenode管理文件系統(tǒng)命名空間中的一部分。每個(gè)namenode維護(hù)一個(gè)命名空間卷,包括命名空間的源數(shù)據(jù)和該命名空間下的文件的所有數(shù)據(jù)塊的數(shù)據(jù)塊池。

HDFS的高可用性(High-Availability)

Hadoop的2.x發(fā)行版本在HDFS中增加了對(duì)高可用性(HA)的支持。在這一實(shí)現(xiàn)中,配置了一對(duì)活動(dòng)-備用(active-standby)namenode。當(dāng)活動(dòng)namenode失效,備用namenode就會(huì)接管它的任務(wù)并開始服務(wù)于來自客戶端的請(qǐng)求,不會(huì)有明顯的中斷。

架構(gòu)的實(shí)現(xiàn)包括:

namenode之間通過高可用的共享存儲(chǔ)實(shí)現(xiàn)編輯日志的共享。
datanode同時(shí)向兩個(gè)namenode發(fā)送數(shù)據(jù)塊處理報(bào)告。
客戶端使用特定的機(jī)制來處理namenode的失效問題,這一機(jī)制對(duì)用戶是透明的。
故障轉(zhuǎn)移控制器:管理著將活動(dòng)namenode轉(zhuǎn)移給備用namenode的轉(zhuǎn)換過程,基于ZooKeeper并由此確保有且僅有一個(gè)活動(dòng)namenode。每一個(gè)namenode運(yùn)行著一個(gè)輕量級(jí)的故障轉(zhuǎn)移控制器,其工作就是監(jiān)視宿主namenode是否失效并在namenode失效時(shí)進(jìn)行故障切換。


3、命令行接口

兩個(gè)屬性項(xiàng): fs.default.name 用來設(shè)置Hadoop的默認(rèn)文件系統(tǒng),設(shè)置hdfs URL則是配置HDFS為Hadoop的默認(rèn)文件系統(tǒng)。dfs.replication 設(shè)置文件系統(tǒng)塊的副本個(gè)數(shù)


4、Hadoop文件系統(tǒng)

Hadoop有一個(gè)抽象的文件系統(tǒng)概念,HDFS只是其中的一個(gè)實(shí)現(xiàn)。Java抽象接口org.apache.hadoop.fs.FileSystem定義了Hadoop中的一個(gè)文件系統(tǒng)接口。該抽象類實(shí)現(xiàn)HDFS的具體實(shí)現(xiàn)是 hdfs.DistributedFileSystem


https://www.cnblogs.com/caiyisen/p/7395843.html


HDFS和linux文件系統(tǒng)的關(guān)系:

每個(gè)磁盤都有默認(rèn)的數(shù)據(jù)塊大小,這是磁盤進(jìn)行數(shù)據(jù)讀/寫的最小單位。而構(gòu)建于單個(gè)磁盤之上的文件系統(tǒng)(linux文件系統(tǒng))通過磁盤塊來管理該文件系統(tǒng)中的塊,該文件系統(tǒng)中的文件大小是磁盤塊的整數(shù)倍。

HDFS--數(shù)據(jù)塊概念(閱讀摘要,理解概念前的信息采集)

HDFS同樣也有塊的概念,HDFS文件系統(tǒng)中的塊指的是linux文件,分布式文件就是有多個(gè)linux文件(塊)組成。其最小塊單位就是一個(gè)Linux文件的大小,默認(rèn)為64MB

可見hdfs文件系統(tǒng)不是直接管理磁盤

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI