hadoop--HDFS概述
目錄
- HDFS概述
- 1.HDFS產出背景及定義
- 2.HDFS優缺點
- HDFS優點
- HDFS缺點
- 3. HDFS組成架構
- NameNode (nn)
- DataNode
- Client
- Secondary NameNode
- 4. HDFS文件塊大小(面試)
HDFS/Yarn/MapReduce概述==>
HDFS概述
1.HDFS產出背景及定義
1). HDFS產生背景
隨著數據量越來越大,在一個操作系統存不下所有數據的情況下,那么就會分配到更多的操作系統管理的磁盤中,但是不方便管理和維護,迫切需要一種系統來管理多臺機器上的文件,這就是分布式文件管理系統。 HDFS只是分布式文件管理系統中的一種。
2). HDFS定義
HDFS(Hadoop Distributed File System),它是一個文件系統, 用于存儲文件,通過目錄樹來定位文件;其次,它是分布式的, 由很多服務器聯合起來實現其功能,集群中的服務器有各自的角色。
HDFS的使用場景:適合一次寫入,多次讀出的場景。 一個文件經過創建、寫入和關閉之后就不需要改變。
2.HDFS優缺點
HDFS優點
1). 高容錯性
數據自動保存多個副本。它通過增加副本的形式,提高容錯性。
某一個副本丟失以后,它可以自動恢復。
2). 適合處理大數據
數據規模:能夠處理數據規模達到GB、TB、PB級別的數據;
文件規模:能夠處理百萬規模以上的文件數量,數量相當大。
3). 可構建在廉價機器上,通過多副本機制,提高可靠性。
HDFS缺點
1). 不適合低延時數據訪問,比如做不到毫秒級的存儲數據訪問;
2). 無法高效地對大量小文件進行存儲;
a. 存儲大量小文件,會占用NameNode大量的內存來存儲文件目錄和塊信息;不可取,因為NameNode的內存總是有限的。
b. 小文件存儲的尋址時間會超過讀取時間,它違反了HDFS的射擊目標。
3). 不支持并發寫入、文件隨機修改;
a. 一個文件只能有一個寫入,不允許多個線程同時寫;
b. 僅支持數據append(追加),不支持文件的隨機修改。
3. HDFS組成架構
NameNode (nn)
: Master,它是管理者。
1). 管理HDFS的名稱空間;
2). 配置副本策略;
3). 管理數據塊(Block)映射信息;
4). 處理客戶端讀寫請求。
DataNode
: Slave,NameNode下達命令,DataNode執行實際的操作。
1). 存儲實際的數據塊;
2). 執行數據塊的讀/寫操作。
Client
: 客戶端。
1). 文件切分。 文件上傳HDFS的時候,Client將文件切分成一個一個的Block,然后進行上傳;
2). 與NameNode交互,獲取文件的位置信息;
3). 與DataNode交互,讀取/寫入數據;
4). Client提供一些命令來管理HDFS,比如NameNode格式化;
5). Client可以通過一些命令來訪問HDFS,比如對HDFS增刪改查操作;
Secondary NameNode
: 并非NameNode的熱備。當NameNode掛掉的時候,它并不能馬上替換NameNode并提供服務。
1). 輔助NameNode,分擔其工作量,比如定期合并Fsimage和Edits,并推送給NameNode;
2). 在緊急情況下,可輔助恢復NameNode。
4. HDFS文件塊大小(面試)
HDFS中的文件在物理上是分塊存儲(Block),塊的大小可以通過配置參數(dfs.blocksize)來規定,默認大小在Hadoop2.x / Hadoop3.x版本中是128M,1.x版本中是64M。
問題:為什么塊的大小不能設置太小,也不能設置太大?
1). HDFS的塊設置太小,會增加尋址時間,程序一直在找塊的開始位置;
2). 如果塊設置的太大,從磁盤傳輸數據的時間會明顯大于定位這個塊開始位置所需的時間。導致程序在處理這塊數據時,會非常慢。
總結: HDFS塊的大小設置主要取決于磁盤傳輸速率。
總結
以上是生活随笔為你收集整理的hadoop--HDFS概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop--历史服务器配置
- 下一篇: 查看服务器cpu是否支持VT