- 數據存入HDFS中時需要對其進行分片(split)、壓縮等操作。
- HDFS使用Block(存儲塊)對文件的存儲進行操作,Block是HDFS的基本存儲單元,默認大小是64MB(Block較大的優點:可以減少用戶與節點之間的通信需求;Namenode利用率高)。每個Block的默認副本數爲3。
- HDFS數據存儲的目標有兩個:最大化數據可靠性(每個數據塊有默認3個副本);最大化利用網絡帶寬資源。
- 數據節點之間的距離:同一節點(0);同一機架上不同節點(3);同一數據中心不同節點上(6);不同數據中心(9)。該距離的計算,由網絡中的交換機的位置計算,該距離值是讀取數據時讀取節點的位置計算依據。
- HDFS上的副本存放位置要對帶寬以及傳輸速率進行衡量。
- 對於數據量較龐大而安全性不太高的數據,可以較少副本數目,或者關閉HDFS複製而採用硬盤Raid模式。
- HDFS副本(3個副本的情況)存放:第一個副本存放在當前節點上;第二個副本存放在不同的機架上;第三個副本存放在同一機架上的不同節點上。
- NameNode中存放的基本信息有個特定的名稱被叫做“元數據”,一般包括數據類型、大小、格式以及對象的存儲形式。
- HDFS在數據寫入時,當節點出現故障時,只要默認的一個節點(dfs.replication.min)被寫入了,數據將自動在集羣鍵複製,直到複製達成第一好的次數。
- HDFS通用操作命令:
- archive:創建一個hadoop檔案文件,使用方法:hadoop archive -archibeName NAME <src>* <dest>
- distcp:在相同的文件系統中並行複製文件,使用方法:hadoop distcp <src1> <src2>
- fs:運行一個常規的文件基本命令,使用方法:hadoop fs [COMMAND_OPTIONS]
- jar:運行一個內含Hadoop運行代碼的jar文件,使用方法:hadoop jar <jar> [mainClass] args
- HDFS18個基本操作命令(文件路徑可以使用相對路徑,core-site.xml中已經對絕對路徑進行了指定):
- -help
- -cat
- -copyFromLocal
- -copyToLocal
- -cp
- -du
- -dus(顯示目標文件大小)
- expugunge(清空回收站)
- -get
- -ls
- -lsr
- -mkdir
- -mv
- -put
- -rm
- -rmr
- -setrep
- -test(使用ezd對文件進行檢查)
- -text(將源文件輸出爲文本格式)