HDFS的常用操作
說明:本博客涉及 HDFS 的常用操作
HDFS文件系統(tǒng)常用操作
HDFS 是 hadoop 的文件系統(tǒng),不是 Linux 操作系統(tǒng)。所以,操作結(jié)果在 Linux 文件系統(tǒng)中都是不可見的。
HDFS
HDFS是hadoop原生態(tài)的文件系統(tǒng),類似window下NTFS
hadoopfs、hadoopdfs與hdfsdfs命令的區(qū)別
hadoopfs:通用的文件系統(tǒng)命令,針對任何系統(tǒng),比如本地文件、HDFS文件、HFTP文件、S3文件系統(tǒng)等。
hadoopdfs:特定針對HDFS的文件系統(tǒng)的相關(guān)操作,但是已經(jīng)不推薦使用。
hdfsdfs:與hadoopdfs類似,同樣是針對HDFS文件系統(tǒng)的操作,替代hadoopdfs。
HDFS文件系統(tǒng)常用操作
文件夾操作-創(chuàng)建、查看、刪除
| 先行操作 | 確保在hadoop安裝目錄下操作 $cd/usr/local/java/hadoop/hadoop-2.7.1 $./bin/hdfs dfs | 將hadoop/bin放入環(huán)境變量中 $hadoop fs |
| 創(chuàng)建文件夾 | $./bin/hdfs dfs -mkdir /dir1 | $hadoop -mkdir /dir1 |
| 創(chuàng)建兩級目錄 | $./bin/hdfs dfs -mkdir -p /user/hadoop | $hadoop fs -mkdir -p /user/hadoop |
| 創(chuàng)建文件 | $./bin/hdfs dfs -touchz /dir1/file.txt | $hadoop fs -touchz /dir1/file.txt |
| 顯示文件內(nèi)容 | 類似于右 | $hadoop fs -cat /dir1/file.txt$ tail方法是將文件尾部1K字節(jié)的內(nèi)容輸出,支持-f選項。 $hadoop fs -tail /dir1/file.txt$ |
| 查看文件大小 | 類似于右 | $hadoop fs -du -s /dir1/file.txt |
| 將文件輸出為文本格式 | 類似于右 | $hadoop fs -text /dir1/file.txt$ |
| 返回制定目錄/文件的統(tǒng)計信息 | 類似于右 | $hadoop fs -stat /dir1/file.txt $hadoop fs -stat %b /dir1/file.txt %b:打印文件大小(目錄為0)%n:打印文件名%o:打印blocksize(我們要的值)%r:打印備份數(shù)%y:打印UTC日期yyyy-MM-ddHH:mm:ss%Y:打印自1970年1月1日以來的UTC微秒數(shù)%F:目錄打印directory,文件打印regularfile |
| 查看HDFS系統(tǒng)文件目錄 | $./bin/hdfs dfs-ls . $./bin/hdfs dfs-ls / | $hadoop fs -ls . $hadoop fs-ls/ |
| 遞歸查看所有文件 | $./bin/hdfs dfs -ls -R/ | $hadoop fs -ls -R/ |
| 刪除文件夾及其子文件夾(迭代刪除) | ./bin/hdfs dfs -rm -r /dir1 | hadoopfs -rm -r /dir1 |
| 修改文件擁有者 | 類似于右 | $hadoop fs -chown root /dir1 |
| 為用戶賦予權(quán)限 | 類似于右 | $hadoop fs -chomd 777 /dir/file.txt 777權(quán)限:可讀可寫可執(zhí)行 |
| 清空回收站 | 類似于右 | $hadoop fs -expunge |
| 進入安全模式 | $hdfs dfsadmin -safemode enter | 同左 |
| 退出安全模式 | $hdfs dfsadmin -safemode leave | 同左 |
注:要刪除HDFS文件系統(tǒng)中的文件夾,要先查看文件夾是否存在,如果存在,其目錄下有沒有子目錄,如果沒有子目錄,直接刪除即可,如果有子目錄,則需要采用遞歸刪除的方式才能將該目錄刪除,否則只能先將其子目錄全部刪除之后,才能用rm命令將該目錄刪除掉。
HDFS文件系統(tǒng)中的上傳與下載
# 將/dir2/test.txt文件上傳到HDFS文件系統(tǒng)/user/hadoop中 $./bin/hdfs dfs -put /dir2/test.txt /user/hadoop # -put:上傳文件;第一個路徑是要傳的文件的路徑;第二個路徑是目的地# 查看文件是否上傳成功 $./bin/hdfs dfs -ls /user/hadoop# 查看HDFS中的文件內(nèi)容 $./bin/hdfs dfs -cat /user/hadoop/test.txt# 從HDFS中下載文件至本地(文件夾為英文) $./bin/hdfs dfs -get /user/hadoop/test.txt /home/hadoop安全模式:在分布式文件系統(tǒng)啟動的時候,開始的時候會有安全模式,當分布式文件系統(tǒng)處于安全模式的情況下,文件系統(tǒng)中的內(nèi)容不允許修改也不允許刪除,直到安全模式結(jié)束。安全模式主要是為了系統(tǒng)啟動的時候檢查各個DataNode上數(shù)據(jù)塊的有效性,同時根據(jù)策略必要的復制或者刪除部分數(shù)據(jù)塊。運行期通過命令也可以進入安全模式。在實踐過程中,系統(tǒng)啟動的時候去修改和刪除文件也會有安全模式不允許修改的出錯提示,只需要等待一會兒即可。
參考文章:
hadoopfs、hadoopdfs與hdfsdfs命令的區(qū)別及hadoopfs命令說明_Shyllin的博客-CSDN博客_fs是什么意思
總結(jié)
- 上一篇: Hadoop安装与配置问题说明
- 下一篇: 用Java API实现HDFS操作(三)