天天看點

Hadoop Hdfs常用指令概述常用指令

Hadoop Hdfs常用指令

概述

本文檔介紹Hadoop hdfs系統的一些常用指令。

操作hdfs系統可以使用hadoop fs 也可以使用 hdfs dfs ,兩者效果一樣。(hadoop dfs指令已不再建議使用)

參考: http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

常用指令

一、hadoop fs (hdfs dfs) 檔案操作

1)ls 顯示目錄下的所有檔案或者檔案夾

使用方法: hadoop fs -ls [uri形式目錄]

示例: hadoop fs –ls / 顯示根目錄下的所有檔案和目錄

顯示目錄下的所有檔案可以加 -R 選項

示例: hadoop fs -ls -R /

2)cat 檢視檔案内容

使用方法:hadoop fs -cat URI [URI …]

示例: hadoop fs -cat /in/test2.txt

3)mkdir 建立目錄

使用方法:hadoop fs -mkdir [uri形式目錄]

示例: hadoop fs –mkdir /test

建立多級目錄 加上 –p

示例: hadoop fs –mkdir -p /a/b/c

4)rm 删除目錄或者檔案

使用方法:hadoop fs -rm [檔案路徑] 删除檔案夾加上 -r

示例: hadoop fs -rm /test1.txt

删除檔案夾加上 -r,

示例:hadoop fs -rm -r /test

5)put 複制檔案

将檔案複制到hdfs系統中,也可以是從标準輸入中讀取檔案,此時的dst是一個檔案

使用方法: hadoop fs -put …

示例:

Hadoop fs -put /usr/wisedu/temp/test1.txt /

從标準輸入中讀取檔案:hadoop fs -put -/in/myword

6)cp 複制系統内檔案

使用方法:hadoopfs -cp URI [URI …]

将檔案從源路徑複制到目标路徑。這個指令允許有多個源路徑,此時目标路徑必須是一個目錄。

示例:

hadoop fs -cp /in/myword/word

7)copyFromLocal 複制本地檔案到hdfs

使用方法:hadoop fs-copyFromLocal URI

除了限定源路徑是一個本地檔案外,和put指令相似

8)get 複制檔案到本地系統

使用方法:hadoop fs -get[-ignorecrc] [-crc]

複制檔案到本地檔案系統。可用-ignorecrc選項複制CRC校驗失敗的檔案。使用-crc選項複制檔案以及CRC資訊。

示例:hadoop fs -get/word /usr/wisedu/temp/word.txt

9)copyToLocal 複制 檔案到本地系統

使用方法:hadoop fs-copyToLocal [-ignorecrc] [-crc] URI

除了限定目标路徑是一個本地檔案外,和get指令類似。

示例:hadoop fs - copyToLocal/word /usr/wisedu/temp/word.txt

10)mv

将檔案從源路徑移動到目标路徑。這個指令允許有多個源路徑,此時目标路徑必須是一個目錄。不允許在不同的檔案系統間移動檔案。

使用方法:hadoop fs -mv URI [URI …]

示例:hadoop fs -mv /in/test2.txt /test2.txt

11)du 顯示檔案大小

顯示目錄中所有檔案的大小。

使用方法:hadoop fs -du URI [URI …]

示例: hadoop fs -du /

顯示目前目錄或者檔案夾的大小可加選項 -s

示例: hadoop fs -du -s /

12)touchz 建立空檔案

使用方法:hadoop fs -touchz URI [URI …]

建立一個0位元組的空檔案

示例:hadoop fs -touchz /empty.txt

13)chmod 改變檔案權限

使用方法:hadoop fs -chmod[-R] <MODE[,MODE]… | OCTALMODE> URI [URI …]

與Linux平台下chmod指令相似,改變檔案的權限。使用-R将使改變在目錄結構下遞歸進行。指令的使用者必須是檔案的所有者或者超級使用者。

示例:先建立一個普通使用者test:sudo useradd -m test

再用wisedu使用者在hdfs系統目錄/a下建立hello.txt檔案,此時test具有讀取/a/hello.txt檔案的權限,如下圖:

在切換回wisedu使用者修改檔案的權限,讓/a目錄下的檔案對于其他使用者都不可讀,指令: hadoop fs -chmod -R o-r /a如下圖所示,再切換回test使用者檢視/a/hello.txt檔案時提示沒有權限:

14)chown 改變檔案所有者

使用方法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI]

改變檔案的擁有者。使用-R将使改變在目錄結構下遞歸進行。指令的使用者必須是超級使用者。

示例:hadoop fs -chown -R test /a 如下圖:

15)chgrp 改變檔案所在組

使用方法:hadoop fs -chgrp [-R] GROUP URI [URI …]

改變檔案所屬的組。使用-R将使改變在目錄結構下遞歸進行。指令的使用者必須是檔案的所有者或者超級使用者。

示例:hadoop fs -chgrp -R test /a 如下圖:

二、hdfs dfsadmin 管理指令

1)-report

檢視檔案系統的基本資訊和統計資訊。

示例:hdfs dfsadmin -report

2)-safemode

enter | leave | get | wait:安全模式指令。安全模式是NameNode的一種狀态,在這種狀态下,NameNode不接受對名字空間的更改(隻讀);不複制或删除塊。NameNode在啟動時自動進入安全模式,當配置塊的最小百分數滿足最小副本數的條件時,會自動離開安全模式。enter是進入,leave是離開。

示例:hdfs dfsadmin -safemode get

hdfsdfsadmin -safemode enter

3)-refreshNodes

重新讀取hosts和exclude檔案,使新的節點或需要退出叢集的節點能夠被NameNode重新識别。這個指令在新增節點或登出節點時用到。

示例:hdfs dfsadmin -refreshNodes

4)-finalizeUpgrade

終結HDFS的更新操作。DataNode删除前一個版本的工作目錄,之後NameNode也這樣做。

5)-upgradeProgress

status| details | force:請求目前系統的更新狀态 | 更新狀态的細節| 強制更新操作

6)-metasave filename

儲存NameNode的主要資料結構到hadoop.log.dir屬性指定的目錄下的檔案中。

7)-setQuota……

為每個目錄設定配額。目錄配額是一個長整形整數,強制設定目錄樹下的名字個數。

8)-clrQuota……

為每個目錄清除配額設定。

9)-help

顯示幫助資訊