HDFS的特性
一、海量數據存儲: HDFS可橫向擴展,其存儲的文件能夠支持PB級別或更高級別的數據存儲。 二、高容錯性:數據保存多個副本,副本丟失後自動恢復。可構建在廉價的機器上,實現線性擴展。當集羣增長新節點以後,namenode也能夠感知,進行負載均衡,將數據分發和備份數據均衡到新的節點上。三、商用硬件:Hadoop並不須要運行在昂貴且高可靠的硬件上。它是設計運行在商用硬件(廉價商業硬件)的集羣上的。四、大文件存儲:HDFS採用數據塊的方式存儲數據,將數據物理切分紅多個小的數據塊。因此再大的數據,切分後,大數據變成了不少小數據。用戶讀取時,從新將多個小數據塊拼接起來。node
HDFS的缺點
1.不能作低延遲數據訪問:因爲hadoop針對高數據吞吐量作了優化,犧牲了獲取數據的延遲,因此對於低延遲訪問數據的業務需求不適合HDFS
2.不適合儲存大量小文件:因爲namenode將文件系統的元數據存儲在內存中,所以該文件系統所能存儲的文件總數受限於namenode的內存容量。根據經驗,每一個文件、目錄和數據塊的存儲信息大約佔150字節。所以,若是有一百萬個小文件,每一個小文件都會佔一個數據塊,那至少須要300MB內存。若是是上億級別的,就會超出當前硬件的能力。
3.修改文件:HDFS適合一次寫入,屢次讀取的場景。對於上傳到HDFS上的文件,不支持修改文件。Hadoop2.0雖然支持了文件的追加功能,但不建議對HDFS上的文件進行修改。由於效率低下.
4.不支持用戶的並行寫:同一時間內,只能有一個用戶執行寫操做。安全
HDFS的安全模式
安全模式是HDFS所處的一種特殊狀態,在這種狀態下,文件系統只接受讀取數據請求,而不接受刪除,修改等變動請求。在NameNode主節點啓動時,HDFS首先進入安全模式DataNode在啓動的時候會向namenode彙報可用的block等狀態,當整個系統達到安全標準時,HDFS自動離開安全模式。若是HDFS處於安全模式下,則文件block不能進行任何的副本複製操做,所以達到最小的副本數量要求是基於datanode啓動時的狀態來斷定的,啓動時不會再作任何複製(從而達到最小副本數量要求),hdfs集羣剛啓動的時候,默認30S鐘的時間是處於安全期的,只有過了30S以後,集羣脫離了安全期,而後才能夠對集羣進行操做負載均衡
安全模式是HDFS所處的一種特殊狀態,在這種狀態下,文件系統只接受讀數據請求,而不接受刪除、修改等變動請
求。
HDFS何時進入安全模式:在NameNode主節點啓動時,HDFS首先進入安全模式
在安全模式下作了什麼: DataNode在啓動的時候會向namenode彙報可用的block等狀態oop
查看hdfs在什麼模式 hdfs dfsadmin -safemode get大數據
進入hdfs安全模式 hdfs dfsadmin -safemode enter優化
退出hdfs安全模式 hdfs dfsadmin -safemode leave設計
Fsimage,Edits詳解
NameNode元數據解析
1.在第一次啓動namenode格式化後,建立fsimage和edits文件。若是不是第一次啓動,直接加載edits和fsimage文件到內存
2.客戶端對元數據進行增刪改的請求
3.namenode記錄操做日誌,更新滾動日誌
4.namenode在內存中對數據進行增刪改查
Fsimage:是記錄HDFS文件系統的鏡像或快照(週期性記錄)(此文件比較小)日誌
Edits記錄客戶端對進行的全部的增,刪,改,追加等操做(沒有使用Secondary NameNode以前不是週期性生成)(此文件相對比較大)內存
Fsimage和Edits做用:用於還原集羣上一次關閉時候的狀態。還原時將兩個文件加載到內存,檢查,合併最終生成一個新的Fsimage。本來的Edits失效。hadoop