您好,登錄后才能下訂單哦!
1.1、數據塊(block)
1.1.1.HDFS(Hadoop Distributed File System)默認的最基本的存儲單位是64M的數據塊。
HDFS上的文件被劃分為塊大小的多個分塊,作為獨立的存儲單元,稱為數據塊
1.1.3.不同于普通文件系統的是,HDFS中,如果一個文件小于一個數據塊的大小,并不占用整個數據塊存儲空間。
每個磁盤都有默認的數據塊大小,這是磁盤進行數據讀/寫的最小單位。構建于單個磁盤之上的文件系統通過磁盤塊來管理該文件系統中的塊,該文件系統塊的大小可以是磁盤塊的整數倍。文件系統塊一般為幾千字節,而磁盤塊一般為512字節。這些信息(文件系統塊大小)對于需要讀/寫文件的文件系統用戶來說是透明的。盡管如此,系統仍然提供了一些工具(如df和fsck)來維護文件系統,由它們對文件系統中的塊進行操作。
首先解釋一下什么是“磁盤塊”。要明確以下:
1、我們知道操作系統與磁盤之間**交流的最小單位**就是磁盤塊,它是一個虛擬的概念。是對于操作系統(軟件)來說有意義的概念。
2、磁盤進行讀寫的最小單位是扇區,而扇區是真實存在的。是硬件部分,是一塊真實存在的物理區域。
由于我們經常接觸的是軟件部分,而不是硬件部分,所以提的多的是磁盤塊。而不是扇區。
3、磁盤塊的大小:塊=扇區×2^n。因為磁盤進行讀寫的基本單位是扇區,而操作系統與磁盤之間是塊,所以系統想進行讀寫,最節省的方式就是扇區的整數倍。
HDFS的三個節點:Namenode,Datanode,Secondary Namenode
Namenode:HDFS的守護進程,用來管理文件系統的命名空間,負責記錄文件是如何分割成數據塊,以及這些數據塊分別被存儲到那些數據節點上,它的主要功能是對內存及IO進行集中管理。
Datanode:文件系統的工作節點,根據需要存儲和檢索數據塊,并且定期向namenode發送他們所存儲的塊的列表。
Secondary Namenode:輔助后臺程序,與NameNode進行通信,以便定期保存HDFS元數據的快照。
HDFS Federation(聯邦HDFS):
通過添加namenode實現擴展,其中每個namenode管理文件系統命名空間中的一部分。每個namenode維護一個命名空間卷,包括命名空間的源數據和該命名空間下的文件的所有數據塊的數據塊池。
HDFS的高可用性(High-Availability)
Hadoop的2.x發行版本在HDFS中增加了對高可用性(HA)的支持。在這一實現中,配置了一對活動-備用(active-standby)namenode。當活動namenode失效,備用namenode就會接管它的任務并開始服務于來自客戶端的請求,不會有明顯的中斷。
架構的實現包括:
namenode之間通過高可用的共享存儲實現編輯日志的共享。
datanode同時向兩個namenode發送數據塊處理報告。
客戶端使用特定的機制來處理namenode的失效問題,這一機制對用戶是透明的。
故障轉移控制器:管理著將活動namenode轉移給備用namenode的轉換過程,基于ZooKeeper并由此確保有且僅有一個活動namenode。每一個namenode運行著一個輕量級的故障轉移控制器,其工作就是監視宿主namenode是否失效并在namenode失效時進行故障切換。
3、命令行接口
兩個屬性項: fs.default.name 用來設置Hadoop的默認文件系統,設置hdfs URL則是配置HDFS為Hadoop的默認文件系統。dfs.replication 設置文件系統塊的副本個數
4、Hadoop文件系統
Hadoop有一個抽象的文件系統概念,HDFS只是其中的一個實現。Java抽象接口org.apache.hadoop.fs.FileSystem定義了Hadoop中的一個文件系統接口。該抽象類實現HDFS的具體實現是 hdfs.DistributedFileSystem
https://www.cnblogs.com/caiyisen/p/7395843.html
HDFS和linux文件系統的關系:
每個磁盤都有默認的數據塊大小,這是磁盤進行數據讀/寫的最小單位。而構建于單個磁盤之上的文件系統(linux文件系統)通過磁盤塊來管理該文件系統中的塊,該文件系統中的文件大小是磁盤塊的整數倍。
HDFS同樣也有塊的概念,HDFS文件系統中的塊指的是linux文件,分布式文件就是有多個linux文件(塊)組成。其最小塊單位就是一個Linux文件的大小,默認為64MB
可見hdfs文件系統不是直接管理磁盤
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。