1. hadoop fs 幫助信息
hadoop fs
使用help選項可以獲得某個具體命令的詳細說明:
hadoop fs -help ls
2. 列出HDFS文件和目錄
hadoop fs -ls /user/
3. 復制文件到HDFS和從HDFS復制文件
在很多方面,HDFS較之於本地0S文件系統更像一個遠程文件系統。對HDFS文件的復制操作更像SCP或FTP操作,而非NFS上的文件系統操作。文件上傳使用-put或-copyFromLocal,文件下載使用-get或-copytoLocal。為了方便-copyFromLocal和-copytoLocal分別用來從本地復制文件到HDFS或將HDFS文件復制到本地,然后自動刪除源文件。
復制文件到hdfs
hadoop fs -put /etc/passwd /user/
從hdfs復制文件
hadoop fs -get /user/passwd /usr/local
4. 修改HDFS文件的復制因子
HDFS的另一個特別之處在於能夠設置文件的復制因子。用-setrep命令,加上復制因子和可選標志(-R)表示要遞歸執行該操作。
hadoop fs -setrep 5 -R /user/tmp/
注:HDFS會主動跟蹤並管理可用數據塊副本的數量,當副本數目低於配置的復制因子時,文件系統會自動從剩下的副本創建一個新的副本。
5. 設定目錄磁盤空間的限額
//size是磁盤限額(用字節表示),path就是配額作用的目標目錄 hadoop dfsadmin -setSpaceQuota size path
6. 查詢文件夾的磁盤空間限額和文件數目限額
hadoop fs -count -q path
結果的第一列顯示的是文件數的限額,第二列是允許添加的文件數,第三列和第四列分別是磁盤空間的限額和剩余的可用空間(單位是字節)。
注:只有當磁盤空間配額大小為磁盤塊大小的整數倍時,才有意義。
7. 解除文件夾磁盤空間配額限制的命令
hadoop dfsadmin -clrSpaceQuota path
8. 設定文件數目配額
hadoop dfsadmin -setQuota number path
9. 解除文件數目配額
hadoop dfsadmin -clrQuota path
10. 添加一個DataNode
集群擴容需要添加新DataNode,通常是在需要增加存儲的情況下,雖然有時也是為了增加IO總帶寬或減小單台機器失效的影響。在運行中的HDFS集群上增加新的DataNode是一個在線操作或熱操作。對於要使用HDFS主機及功能的用戶,新主機的IP地址必須添加到include文件中,但主機列表可以動態更新而無需重新啟動NameNode。
1. 把DataNode的IP地址加入dfs.hosts參數指定的文件中。每個IP地址占用一行。
2. 以HDFS超級用戶或有類似權限的用戶執行命令行hadoop dfsadmin -refreshNodes。
3. 如果使用機架感知機制,需要為新加入主機更新相關的機架信息。
4. 啟動DataNode進程。
5. 通過NameNode的Web界面或命令hadoop dfsadmin -report的輸出來確定新節點是否已連接。
僅當使用包含HDFS主機的功能時需要執行步驟1和2。
11. 卸載DataNode
DataNode可能被卸載以便把它從集群中安全移除,同時還要保持主機上所有塊的復制因子。這個過程可能很漫長,取決於被卸載主機上的數據量、集群工作數以及網絡速度等因素。因為卸載的時間太長,在操作系統重啟或配置變化引發的重啟所導致的短暫停機狀態下不適合做卸載節點的操作。如果想保證所有數據塊安全,就需要使用安全卸載功能。
1. 把DataNode的IP地址添加到dfs.hosts.exclude參數指定的文件中。每個IP地址占用一行。
2. 以HDFS超級用戶或擁有類似權限的用戶執行hadoop dfsadmin -refreshNodes。
3. 監控NameNode的Web界面確保卸載正在進行。有時更新會滯后幾秒。
4. 因為DataNode上的數據較多,卸載有時會持續數小時甚至幾天。卸載完成時,NameNode界面會把DataNode顯示成已卸載。
5. 停止DataNode進程。
6. 如果不打算把機器放回集群,就需要在HDFS的include和exclude文件中去除DataNode,同時更新機架拓撲數據庫。
7. 執行hadoop dfsadmin -refreshNodes讓NameNode進行節點更新。
12. 在HDFS中創建一個新文件夾
hadoop fs -mkdir /user/weblogs
13. 列出HDFS上weblog_entries.txt文件信息
hadoop fs -ls /user/weblogs/weblog_entries.txt