在master上以hadoop-twq用戶登錄
cd ~
、ls /
- 查看HDFS文件目錄:
hadoop fs -ls hdfs://master:9999/
(當前還沒有文件)
效果等同於:hadoop fs -ls /
效果也等同於:hdfs dfs -ls /
- 在這個根目錄創建一個文件或目錄:
hadoop fs -mkdir /user
效果等同於:hadoop fs -mkdir hdfs://master:9999/user
在WebUI上刷新可以看到多了一個user目錄
再創建一個目錄:hadoop fs -mkdir /user/hadoop-twq/cmd
(會報錯)
正確的方式:hadoop fs -mkdir -p /user/hadoop-twq/cmd
(遞歸創建) - 把本地文件word.txt上傳到HDFS文件系統上去:
hadoop fs -copyFromLocal word.txt /user/hadoop-twq/cmd
查看:hadoop fs -ls /user/hadoop-twq/cmd
(txt文件存在)
再上傳一次就會報錯,如果想要覆蓋文件要加-f
hadoop fs -copyFromLocal -f word.txt /user/hadoop-twq/cmd
- 查看文件內容:
hadoop fs -cat /user/hadoop-twq/cmd/word.txt
- 用put方式代替copyFromlocal方式上傳:
hadoop fs -put -f word.txt /user/hadoop-twq/cmd
將兩個文件一起上傳:
hadoop fs -put test.sh word2.txt /user/hadoop-twq/cmd
put還可以將文件流寫到hdfs中:
hadoop fs -put - /user/hadoop-twq/cmd/put.txt
(回車輸入內容,Ctrl+D結束輸入)然后查看 - 下載put.txt:
hadoop fs -get /user/hadoop-twq/cmd/put.txt
- 創建文件:
hadoop fs -touchz /user/hadoop-twq/cmd/flag.txt
- 將flag.txt移動到/user/hadoop-twq目錄下:
hadoop fs -mv /user/hadoop-twq/cmd/flag.txt /user/hadoop-twq
- 將put.txt文件權限改成744:
hadoop fs -chmod 744 /user/hadoop-twq/cmd/put.txt
將cmd目錄權限改成777:
hadoop fs -chmod -R 777 /user/hadoop-twq/cmd
- 查看big_file.txt文件大小:
ll -h
(發現是153M) - 把big_file.txt上傳到hdfs文件系統中:
hadoop fs -put big_file.txt /user/hadoop-twq/cmd
- 嘗試列出文件命令的異同:
hadoop fs -ls /user/hadoop-twq/cmd
hadoop fs -ls -h /user/hadoop-twq/cmd
hadoop fs -ls -d /user/hadoop-twq/cmd
hadoop fs -ls -R /user/hadoop-twq/cmd
hadoop fs -ls -R /user/hadoop-twq
hadoop fs -ls -R /user
- 查看文件大小:
hadoop fs -du /user/hadoop-twq/cmd
hadoop fs -du -h /user/hadoop-twq/cmd
(大小可讀)
hadoop fs -du -s -h /user/hadoop-twq/cmd
(整個目錄有多大) - 查看hdfs總共有多大:
hadoop fs -df
hadoop fs -df -h
(大小可讀)
總之hdfs的命令是與Linux命令很相似的,文件目錄結構都是目錄樹的結構