溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hadoop Shell命令(版本:2.7.2)

發(fā)布時間:2020-07-03 20:26:06 來源:網(wǎng)絡(luò) 閱讀:679 作者:898009427 欄目:大數(shù)據(jù)

Hadoop Shell命令(版本:2.7.2)

官方文檔2.7.2

官方中文1.0.4

  • 概觀
    • appendToFile
    • cat
    • checksum
    • chgrp
    • chmod
    • chown
    • copyFromLocal
    • copyToLocal
    • count
    • cp
    • createSnapshot
    • deleteSnapshot
    • df
    • du
    • dus
    • expunge
    • find
    • get
    • getfacl
    • getfattr
    • getmerge
    • help
    • ls
    • lsr
    • mkdir
    • moveFromLocal
    • moveToLocal
    • mv
    • put
    • renameSnapshot
    • rm
    • rmdir
    • rmr
    • setfacl
    • setfattr
    • setrep
    • stat
    • tail
    • test
    • text
    • touchz
    • truncate
    • usage

概觀

文件系統(tǒng)(FS)shell包括各種類似shell的命令,這些命令直接與Hadoop分布式文件系統(tǒng)(HDFS)以及Hadoop支持的其他文件系統(tǒng)交互,例如本地FS,HFTP FS,S3 FS等。FS shell由以下方式調(diào)用:

bin/hadoop fs <args>

所有的的FS shell命令使用URI路徑作為參數(shù)。URI格式是scheme://authority/path。對HDFS文件系統(tǒng),scheme是hdfs,對本地文件系統(tǒng),scheme是file。其中scheme和authority參數(shù)都是可選的,如果未加指定,就會使用配置中指定的默認(rèn)scheme??梢詫DFS文件或目錄(例如/parent/child)指定為hdfs://namenodehost/parent/child或簡單地指定為/parent/child(假設(shè)您的配置設(shè)置為指向hdfs://namenodehost)。

大多數(shù)FS Shell命令的行為和對應(yīng)的Unix Shell命令類似,不同之處會在下面介紹各命令使用詳情時指出。出錯信息會輸出到stderr,其他信息輸出到stdout。

如果正在使用HDFS,則hdfs dfs是同義詞。

有關(guān)通用shell選項,請參閱命令手冊。

appendToFile

用法:

hadoop fs -appendToFile <localsrc> ... <dst>

將單個src或多個srcs從本地文件系統(tǒng)附加到目標(biāo)文件系統(tǒng)。還從stdin讀取輸入并附加到目標(biāo)文件系統(tǒng)。

hadoop fs -appendToFile localfile /user/hadoop/hadoopfile
hadoop fs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile
hadoop fs -appendToFile localfile hdfs://nn.example.com/hadoop/hadoopfile
hadoop fs -appendToFile - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin.

退出代碼:

成功時返回0,錯誤時返回1。

cat

用法:

hadoop fs -cat URI [URI ...]

將路徑指定文件的內(nèi)容輸出到stdout。

例:

hadoop fs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
hadoop fs -cat file:///file3 /user/hadoop/file4

退出代碼:

成功時返回0,錯誤時返回-1。

checksum

用法:

hadoop fs -checksum URI

返回文件的校驗和信息。

例:

hadoop fs -checksum hdfs://nn1.example.com/file1
hadoop fs -checksum file:///etc/hosts

chgrp

用法:

hadoop fs -chgrp [-R] GROUP URI [URI ...]

更改文件的組關(guān)聯(lián)。用戶必須是文件的所有者,否則必須是超級用戶。其他信息在“ 權(quán)限指南”中。

選項

  • -R選項將通過目錄結(jié)構(gòu)遞歸地進行更改。

chmod

用法:

hadoop fs -chmod [-R] <MODE [,MODE] ... | OCTALMODE> URI [URI ...]

更改文件的權(quán)限。使用-R,通過目錄結(jié)構(gòu)遞歸更改。用戶必須是文件的所有者,否則必須是超級用戶。其他信息在“ 權(quán)限指南”中。

選項

  • -R選項將通過目錄結(jié)構(gòu)遞歸地進行更改。

chown

用法:

hadoop fs -chown [-R] [OWNER] [:[GROUP]] URI [URI]

更改文件的所有者。用戶必須是超級用戶。其他信息在“ 權(quán)限指南”中。

選項

  • -R選項將通過目錄結(jié)構(gòu)遞歸地進行更改。

copyFromLocal

用法:

hadoop fs -copyFromLocal <localsrc> URI

與put命令類似,但源僅限于本地文件引用。

選項:

  • -f 如果目標(biāo)已存在,則覆蓋目標(biāo)。

copyToLocal

用法:

hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>

與get命令類似,但目標(biāo)僅限于本地文件引用。

count

用法:

hadoop fs -count [-q] [-h] [-v] <paths>

計算與指定文件模式匹配的路徑下的目錄,文件和字節(jié)數(shù)。-count的輸出列為:DIR_COUNT,F(xiàn)ILE_COUNT,CONTENT_SIZE,PATHNAME

-count -q的輸出列為:QUOTA,REMAINING_QUATA,SPACE_QUOTA,REMAINING_SPACE_QUOTA,DIR_COUNT,F(xiàn)ILE_COUNT,CONTENT_SIZE,PATHNAME

-h選項以人類可讀格式顯示大小。

-v選項顯示標(biāo)題行。

例:

hadoop fs -count hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
hadoop fs -count -q hdfs://nn1.example.com/file1
hadoop fs -count -q -h hdfs://nn1.example.com/file1
hdfs dfs -count -q -h -v hdfs://nn1.example.com/file1
```shell
退出代碼:

成功時返回0,錯誤時返回-1。

## cp
用法:
```shell
hadoop fs -cp [-f] [-p | -p [topax]] URI [URI ...] <dest>

將文件從源復(fù)制到目標(biāo)。此命令也允許多個源,在這種情況下,目標(biāo)必須是目錄。

如果(1)源文件系統(tǒng)和目標(biāo)文件系統(tǒng)支持它們(僅限HDFS),并且(2)所有源和目標(biāo)路徑名都在/.reserved/raw層次結(jié)構(gòu)中,則保留'raw。'命名空間擴展屬性。是否保留raw。 namespace xattrs的確定與-p(保留)標(biāo)志無關(guān)。

選項:

如果目標(biāo)已存在,則-f選項將覆蓋目標(biāo)。
-p選項將保留文件屬性[topx](時間戳,所有權(quán),權(quán)限,ACL,XAttr)。如果指定了-p且沒有arg,則保留時間戳,所有權(quán)和權(quán)限。如果指定了-pa,則還保留權(quán)限,因為ACL是一組超級權(quán)限。確定是否保留原始命名空間擴展屬性與-p標(biāo)志無關(guān)。

例:

hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

退出代碼:

成功時返回0,錯誤時返回-1。

createSnapshot

請參閱"HDFS快照指南"。

deleteSnapshot

請參閱"HDFS快照指南"。

df

用法:

hadoop fs -df [-h] URI [URI ...]

顯示可用空間。

選項:

  • -h選項將以“人類可讀”的方式格式化文件大小(例如64.0m而不是67108864)

例:

hadoop dfs -df /user/hadoop/dir1

du

用法:

hadoop fs -du [-s] [-h] URI [URI ...]

顯示給定目錄中包含的文件和目錄的大小或文件的長度,以防它只是一個文件。

選項:

  • -s選項將導(dǎo)致顯示文件長度的匯總摘要,而不是單個文件。
  • -h選項將以“人類可讀”的方式格式化文件大小(例如64.0m而不是67108864)

例:

hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://nn.example.com/user/hadoop/dir1

退出代碼:成功時返回0,錯誤時返回-1。

dus

用法:

hadoop fs -dus <args>

顯示文件長度的摘要。

注意:不推薦使用此命令。而是使用hadoop fs -du -s。

expunge

用法:

hadoop fs -expunge

清空垃圾。有關(guān)“廢紙簍”功能的詳細(xì)信息,請參閱"HDFS體系結(jié)構(gòu)指南"。

find

用法:

hadoop fs -find <path> ... <expression> ...

查找與指定表達式匹配的所有文件,并將選定的操作應(yīng)用于它們。如果未指定路徑,則默認(rèn)為當(dāng)前工作目錄。如果未指定表達式,則默認(rèn)為-print。

識別以下主要表達式:

  • -name pattern
    -iname pattern

如果文件的基名與使用標(biāo)準(zhǔn)文件系統(tǒng)globbing的模式匹配,則求值為true。如果使用-iname,則匹配不區(qū)分大小寫。

  • -print
    -print0Always

評估為真。使當(dāng)前路徑名寫入標(biāo)準(zhǔn)輸出。如果使用-print0表達式,則附加ASCII NULL字符。

以下運營商得到承認(rèn):

  • expression -a expression
    expression -and expression
    expression expression

用于連接兩個表達式的邏輯AND運算符。如果兩個子表達式都返回true,則返回true。由兩個表達式的并置所暗示,因此不需要明確指定。如果第一個表達式失敗,則不會應(yīng)用第二個表達式。

例:

hadoop fs -find / -name test -print

退出代碼:

成功時返回0,錯誤時返回-1。

get

用法:

hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>

將文件復(fù)制到本地文件系統(tǒng)。可以使用-ignorecrc選項復(fù)制CRC校驗失敗的文件??梢允褂?crc選項復(fù)制文件和CRC。

例:

hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://nn.example.com/user/hadoop/file localfile

退出代碼:

成功時返回0,錯誤時返回-1。

getfacl

用法:

hadoop fs -getfacl [-R] <path>

顯示文件和目錄的訪問控制列表(ACL)。如果目錄具有默認(rèn)ACL,則getfacl還會顯示默認(rèn)ACL。

選項:

  • -R:遞歸列出所有文件和目錄的ACL。
  • path:要列出的文件或目錄。

例子:

hadoop fs -getfacl /file
hadoop fs -getfacl -R /dir

退出代碼:

成功時返回0,錯誤時返回非零。

getfattr

用法:

hadoop fs -getfattr [-R] -n name | -d [-e en] <path>

顯示文件或目錄的擴展屬性名稱和值(如果有)。

選項:

  • -R:遞歸列出所有文件和目錄的屬性。
  • -n name:轉(zhuǎn)儲指定的擴展屬性值。
  • -d:轉(zhuǎn)儲與pathname關(guān)聯(lián)的所有擴展屬性值。
  • -e encoding:檢索后對代碼值進行編碼。有效編碼為“text”,“hex”和“base64”。編碼為文本字符串的值用雙引號(“)括起來,編碼為十六進制和base64的值分別以0x和0s為前綴。
  • path:文件或目錄。

例子:

hadoop fs -getfattr -d /file
hadoop fs -getfattr -R -n user.myAttr /dir

退出代碼:

成功時返回0,錯誤時返回非零。

getmerge

用法:

hadoop fs -getmerge [-nl] <src> <localdst>

將源目錄和目標(biāo)文件作為輸入,并將src中的文件連接到目標(biāo)本地文件??蛇x地,-nl可以設(shè)置為允許在每個文件的末尾添加換行符(LF)。

例子:

hadoop fs -getmerge -nl /src /opt/output.txt
hadoop fs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt

退出代碼:

成功時返回0,錯誤時返回非零。

help

用法:

hadoop fs -help

返回使用量輸出。

ls

用法:

hadoop fs -ls [-d] [-h] [-R] <args>

選項:

  • -d:目錄列為純文件。
  • -h:以人類可讀的方式格式化文件大?。ɡ?4.0m而不是67108864)。
  • -R:遞歸列出遇到的子目錄。

對于文件,ls使用以下格式返回文件的stat:

permissions number_of_replicas userid groupid filesize modification_date modification_time filename

對于目錄,它返回其直接子節(jié)點的列表,如在Unix中。目錄列為:

permissions userid groupid modification_date modification_time dirname

默認(rèn)情況下,目錄中的文件按文件名排序。

例:

hadoop fs -ls /user/hadoop/file1

退出代碼:

成功時返回0,錯誤時返回-1。

lsr

用法:

hadoop fs -lsr <args>

ls的遞歸版本。

注意:不推薦使用此命令。而是使用hadoop fs -ls -R

mkdir

用法:

hadoop fs -mkdir [-p] <paths>

將路徑uri作為參數(shù)并創(chuàng)建目錄。

選項:

  • -p選項行為很像Unix mkdir -p,沿路徑創(chuàng)建父目錄。

例:

hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hadoop fs -mkdir hdfs://nn1.example.com/user/hadoop/dir hdfs://nn2.example.com/user/hadoop/dir

退出代碼:

成功時返回0,錯誤時返回-1。

moveFromLocal

用法:

hadoop fs -moveFromLocal <localsrc> <dst>

與put命令類似,只是在復(fù)制后刪除了源localsrc。

moveToLocal

用法:

hadoop fs -moveToLocal [-crc] <src> <dst>

顯示“尚未實現(xiàn)”消息。

mv

用法:

hadoop fs -mv URI [URI ...] <dest>

將文件從源移動到目標(biāo)。此命令允許多個源,在這種情況下,目標(biāo)需要是目錄。不允許跨文件系統(tǒng)移動文件。

例:

hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
hadoop fs -mv hdfs://nn.example.com/file1 hdfs://nn.example.com/file2 hdfs://nn.example.com/file3 hdfs://nn.example.com/dir1

退出代碼:

成功時返回0,錯誤時返回-1。

put

用法:

hadoop fs -put <localsrc> ... <dst>

將單個src或多個srcs從本地文件系統(tǒng)復(fù)制到目標(biāo)文件系統(tǒng)。還從stdin讀取輸入并寫入目標(biāo)文件系統(tǒng)。

hadoop fs -put localfile /user/hadoop/hadoopfile
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
hadoop fs -put localfile hdfs://nn.example.com/hadoop/hadoopfile
hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin.

退出代碼:

成功時返回0,錯誤時返回-1。

renameSnapshot

請參閱"HDFS快照指南"。

rm

用法:

hadoop fs -rm [-f] [-r | -R] [-skipTrash] URI [URI ...]

刪除指定為args的文件。

選項:

  • 如果文件不存在,-f選項將不顯示診斷消息或修改退出狀態(tài)以反映錯誤。
  • -R選項以遞歸方式刪除目錄及其下的任何內(nèi)容。
  • -r選項等效于-R。
  • -skipTrash選項將繞過垃圾桶(如果已啟用),并立即刪除指定的文件。當(dāng)需要從超配額目錄中刪除文件時,這非常有用。

例:

hadoop fs -rm hdfs://nn.example.com/file /user/hadoop/emptydir

退出代碼:

成功時返回0,錯誤時返回-1。

rmdir

用法:

hadoop fs -rmdir [--ignore-fail-on-non-empty] URI [URI ...]

刪除目錄。

選項:

  • --ignore-fail-on-non-empty:使用通配符時,如果目錄仍包含文件,請不要失敗。

例:

hadoop fs -rmdir /user/hadoop/emptydir

rmr

用法:

hadoop fs -rmr [-skipTrash] URI [URI ...]

刪除的遞歸版本。

注意:不推薦使用此命令。而是使用hadoop fs -rm -r

setfacl

用法:

hadoop fs -setfacl [-R] [-b | -k -m | -x <acl_spec> <path>] | [ - set <acl_spec> <path>]

設(shè)置文件和目錄的訪問控制列表(ACL)。

選項:

  • -b:刪除除基本ACL條目之外的所有條目。保留用戶,組和其他條目以與權(quán)限位兼容。
  • -k:刪除默認(rèn)ACL。
  • -R:遞歸地對所有文件和目錄應(yīng)用操作。
  • -m:修改ACL。新條目將添加到ACL,并保留現(xiàn)有條目。
  • -x:刪除指定的ACL條目。保留其他ACL條目。
  • --set:完全替換ACL,丟棄所有現(xiàn)有條目。所述acl_spec必須包括用戶,組條目和其他用于與權(quán)限位兼容性。
  • acl_spec:以逗號分隔的ACL條目列表。
  • path:要修改的文件或目錄。

例子:

hadoop fs -setfacl -m user:hadoop:rw- /file
hadoop fs -setfacl -x user:hadoop /file
hadoop fs -setfacl -b /file
hadoop fs -setfacl -k /dir
hadoop fs -setfacl --set user::rw-,user:hadoop:rw-,group::r--,other::r-- /file
hadoop fs -setfacl -R -m user:hadoop:r-x /dir
hadoop fs -setfacl -m default:user:hadoop:r-x /dir

退出代碼:

成功時返回0,錯誤時返回非零。

setfattr

用法:

hadoop fs -setfattr -n name [-v value] | -x name <path>

設(shè)置文件或目錄的擴展屬性名稱和值。

選項:

  • -b:刪除除基本ACL條目之外的所有條目。保留用戶,組和其他條目以與權(quán)限位兼容。
  • -n name:擴展屬性名稱。
  • -v value:擴展屬性值。該值有三種不同的編碼方法。如果參數(shù)用雙引號括起來,那么值就是引號內(nèi)的字符串。如果參數(shù)的前綴為0x或0X,則將其視為十六進制數(shù)。如果參數(shù)以0或0S開頭,則將其視為base64編碼。
  • -x name:刪除擴展屬性。
  • path:文件或目錄。

例子:

hadoop fs -setfattr -n user.myAttr -v myValue /file
hadoop fs -setfattr -n user.noValue /file
hadoop fs -setfattr -x user.myAttr /file

退出代碼:

成功時返回0,錯誤時返回非零。

setrep

用法:

hadoop fs -setrep [-R] [-w] <numReplicas> <path>

更改文件的復(fù)制因子。如果path是目錄,則命令以遞歸方式更改以path為根的目錄樹下的所有文件的復(fù)制因子。

選項:

  • -w標(biāo)志請求命令等待復(fù)制完成。這可能需要很長時間。
  • 接受-R標(biāo)志是為了向后兼容。它沒有效果。

例:

hadoop fs -setrep -w 3 /user/hadoop/dir1

退出代碼:

成功時返回0,錯誤時返回-1。

stat

用法:

hadoop fs -stat [格式] <路徑> ...

以指定格式打印有關(guān)<path>的文件/目錄的統(tǒng)計信息。格式接受塊(%b),類型(%F),所有者組名(%g),名稱(%n),塊大小(%o),復(fù)制(%r),所有者用戶名(%)的文件大小u)和修改日期(%y,%Y)。%y將UTC日期顯示為“yyyy-MM-dd HH:mm:ss”,%Y顯示自1970年1月1日UTC以來的毫秒數(shù)。如果未指定格式,則默認(rèn)使用%y。

例:

hadoop fs -stat "%F %u:%g %b %y %n" /file

退出代碼:成功時返回0,錯誤時返回-1。

tail

用法:

hadoop fs -tail [-f] URI

顯示文件的最后一千字節(jié)到stdout。

選項:

  • -f選項將在文件增長時輸出附加數(shù)據(jù),如在Unix中一樣。

例:

hadoop fs -tail pathname

退出代碼:成功時返回0,錯誤時返回-1。

test

用法:

hadoop fs -test - [defsz] URI

選項:

  • -d:f路徑是目錄,返回0。
  • -e:如果路徑存在,則返回0。
  • -f:如果路徑是文件,則返回0。
  • -s:如果路徑不為空,則返回0。
  • -z:如果文件長度為零,則返回0。

例:

hadoop fs -test -e filename

text

用法:

hadoop fs -text <src>

獲取源文件并以文本格式輸出文件。允許的格式為zip和TextRecordInputStream。

touchz

用法:

hadoop fs -touchz URI [URI ...]

創(chuàng)建一個零長度的文件。

例:

hadoop fs -touchz pathname

退出代碼:成功時返回0,錯誤時返回-1。

truncate

用法:

hadoop fs -truncate [-w] <length> <paths>

將與指定文件模式匹配的所有文件截斷為指定的長度。

選項:

  • 該-w標(biāo)志的要求,對塊恢復(fù)命令如有必要,等待完成。如果沒有-w標(biāo)志,則在恢復(fù)過程中文件可能會保持未閉合一段時間。在此期間,無法重新打開文件以進行追加。

例:

hadoop fs -truncate 55 /user/hadoop/file1 /user/hadoop/file2
hadoop fs -truncate -w 127 hdfs://nn1.example.com/user/hadoop/file1

usage

用法:

hadoop fs -usage命令

返回單個命令的幫助。

向AI問一下細(xì)節(jié)
推薦閱讀:
  1. Hadoop 之 HDFS
  2. Hadoop 入門

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI