文章目錄
- 一、命令大全
- 二、上傳
- 1、-mkdir 創建檔案夾
- 2、-moveFromLocal 從本地剪切粘貼到HDFS
- 3、-copyFromLocal 或 -put從本地復制到HDFS
- 4、-appendToFile 追加一個檔案到已存在的檔案末尾
- 三、下載
- -copyToLocal 或 -get 從HDFS拷貝到本地
- 四、HDFS直接操作
- 1、-ls 顯示目錄資訊
- 2、-cat 顯示檔案內容
- 3、-chgrp、-chmod、-chown 修改檔案所屬權限
- 4、-cp 或 -mv 從HDFS的一個路徑拷貝或移動到HDFS的另一個路徑
- 5、-tail 顯示一個檔案的末尾1kb的資料
- 6、-rm 或 -rm -r 洗掉檔案[夾] ,或遞回洗掉目錄及內容
- 7、-du 統計檔案夾的大小資訊
- 8、-setrep 設定HDFS中副本數量
一、命令大全
在終端輸入hadoop fs或者hdfs dfs可以查看所有的命令:

如果想要知道某個命令具體是怎么用的,可以使用-help輸出這個命令引數
比如:
hadoop fs -help rm
輸出的內容有:該命令的解釋以及可以追加的引數

二、上傳
1、-mkdir 創建檔案夾
hadoop fs -mkdir /sanguo

2、-moveFromLocal 從本地剪切粘貼到HDFS
vim shuguo.txt
# 在該檔案中輸入:shuguo
# 剪切粘貼到HDFS
hadoop fs -moveFromLocal ./shuguo.txt /sanguo


3、-copyFromLocal 或 -put從本地復制到HDFS
-copyFromLocal等同于-put,在生產環境中更多使用-put
vim weiguo.txt
# 在該檔案中輸入:weiguo
# 復制到HDFS
hadoop fs -copyFromLocal weiguo.txt /sanguo
# 或
hadoop fs -put weiguo.txt /sanguo


4、-appendToFile 追加一個檔案到已存在的檔案末尾
vim liubei.txt
# 在該檔案中輸入:liubei
# 執行追加
hadoop fs -appentToFile liubei.txt /sanguo/shuguo.txt
在這里踩個坑,執行插入命令之后如果報以下錯誤:

需要在hadoop3.1.3/etc/hadoop/hdfs-site.xml中插入以下配置:
<!--解決Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being availa 例外 -->
<property>
<name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
<value>true</value>
</property>
<property>
<name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
<value>NEVER</value>
</property>
然后分發配置,重啟hdfs,再次執行上面的命令,到hdfs中查看效果:

三、下載
-copyToLocal 或 -get 從HDFS拷貝到本地
-copyToLocal等同于-get,在生產環境中更多使用-get
# 從hdfs中下載shuguo.txt,在此命令中還可以更改檔案名
hadoop fs -copyToLocal /sanguo/shuguo.txt ./shuguo1.txt
# 或者使用get
hadoop fs -get /sanguo/shuguo.txt ./shuguo2.txx

四、HDFS直接操作
1、-ls 顯示目錄資訊
hadoop fs -ls /sanguo

2、-cat 顯示檔案內容
hadoop fs -cat /sanguo/shuguo.txt

3、-chgrp、-chmod、-chown 修改檔案所屬權限
# 更改檔案權限
hadoop fs -chmod 777 /sanguo/shuguo.txt
# 更改檔案的擁有者
hadoop fs -chown wzq:wzq /sanguo/shuguo.txt

4、-cp 或 -mv 從HDFS的一個路徑拷貝或移動到HDFS的另一個路徑
# 在hdfs根目錄下創建檔案夾jinguo
hadoop fs -mkdir jinguo
# 把/sanguo/shuguo.txt復制到/jinguo
hadoop fs -cp /sanguo/shuguo.txt /jinguo
# 把/sanguo/weiguo.txt移動到/jinguo
hadoop fs -mv /sanguo/weiguo.txt /jinguo


5、-tail 顯示一個檔案的末尾1kb的資料
hadoop fs -tail /jinguo/shuguo.txt

6、-rm 或 -rm -r 洗掉檔案[夾] ,或遞回洗掉目錄及內容
# 洗掉/sanguo/shuguo.txt
hadoop fs -rm /sanguo/shuguo.txt
# 遞回洗掉/sanguo目錄下所有內容
hadoop fs -rm -r /sanguo

7、-du 統計檔案夾的大小資訊
顯示整個檔案夾大小資訊:
hadoop fs -du -s -h /jinguo

顯示檔案夾里的內容大小資訊:
hadoop fs -du -h /jinguo

8、-setrep 設定HDFS中副本數量
hadoop fs -setrep 10 /jinguo/shuguo.txt

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273350.html
標籤:其他
