(四) hdfs 命令學習筆記
hdfs 命令學習筆記
- 入門
- 幫助相關命令
- 檢視相關命令
- 檔案及目錄相關命令
- 統計相關命令
- 快照命令
入門
完成之前章節操作後,可以開始學習hdfs命令啦,輸入 hadoop fs 。
[[email protected] 桌面]# hadoop fs
Usage: hadoop fs [generic options]
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum <src> ... ]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
[-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] <path> ... ]
[-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
[-createSnapshot <snapshotDir> [<snapshotName>]]
[-deleteSnapshot <snapshotDir> <snapshotName>]
[-df [-h] [<path> ...]]
[-du [-s] [-h] [-x] <path> ...]
[-expunge]
[-find <path> ... <expression> ...]
[-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-getfacl [-R] <path>]
[-getfattr [-R] {-n name | -d} [-e en] <path>]
[-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
[-help [cmd ...]]
[-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]]
[-mkdir [-p] <path> ...]
[-moveFromLocal <localsrc> ... <dst>]
[-moveToLocal <src> <localdst>]
[-mv <src> ... <dst>]
[-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
[-renameSnapshot <snapshotDir> <oldName> <newName>]
[-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
[-rmdir [--ignore-fail-on-non-empty] <dir> ...]
[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
[-setfattr {-n name [-v value] | -x name} <path>]
[-setrep [-R] [-w] <rep> <path> ...]
[-stat [format] <path> ...]
[-tail [-f] <file>]
[-test -[defsz] <path>]
[-text [-ignoreCrc] <src> ...]
[-touchz <path> ...]
[-truncate [-w] <length> <path> ...]
[-usage [cmd ...]]
Generic options supported are
-conf <configuration file> specify an application configuration file
-D <property=value> use value for given property
-fs <file:///|hdfs://namenode:port> specify default filesystem URL to use, overrides 'fs.defaultFS' property from configurations.
-jt <local|resourcemanager:port> specify a ResourceManager
-files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.
The general command line syntax is
command [genericOptions] [commandOptions]
查詢命令幫助指南
- usage :檢視命令用法,如檢視 ls 的。
[[email protected] 桌面]# hadoop fs -usage ls
Usage: hadoop fs [generic options] -ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]
- help :檢視命令的詳細幫助,如檢視ls命令的幫助。
[[email protected] 桌面]# hadoop fs -help ls
-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...] :
List the contents that match the specified file pattern. If path is not
specified, the contents of /user/<currentUser> will be listed. For a directory a
list of its direct children is returned (unless -d option is specified).
Directory entries are of the form:
permissions - userId groupId sizeOfDirectory(in bytes)
modificationDate(yyyy-MM-dd HH:mm) directoryName
and file entries are of the form:
permissions numberOfReplicas userId groupId sizeOfFile(in bytes)
modificationDate(yyyy-MM-dd HH:mm) fileName
-C Display the paths of files and directories only.
-d Directories are listed as plain files.
-h Formats the sizes of files in a human-readable fashion
rather than a number of bytes.
-q Print ? instead of non-printable characters.
-R Recursively list the contents of directories.
-t Sort files by modification time (most recent first).
-S Sort files by size.
-r Reverse the order of the sort.
-u Use time of last access instead of modification for
display and sorting.
檢視相關命令
- ls : 檢視檔案或目錄,下例中:hdfs://localhost:9000是fs.defaultFS配置的值,hdfs://localhost:9000/即表示HDFS檔案系統中根目錄,如果使用的是HDFS檔案系統, 可以簡寫為/。
[root@slave1 桌面]# hadoop fs -ls hdfs://192.168.248.132:9000/
Found 1 items
drwxr-xr-x - root supergroup 0 2017-05-26 16:06 hdfs://192.168.248.132:9000/user
[root@slave1 桌面]# hadoop fs -ls /
Found 1 items
drwxr-xr-x - root supergroup 0 2017-05-26 16:06 /user
選項-R:連同子目錄的檔案一起列出(我的目錄裡面沒有子目錄),例:
[[email protected] 桌面]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 14 2017-05-26 17:26 /input.txt
drwxr-xr-x - root supergroup 0 2017-05-26 16:06 /user
- cat :顯示檔案內容
[root@slave1 tmp]# hadoop fs -cat /input.txt
hello hadoop!
hello hadoop!
- text:將給定的檔案以文字的格式輸出,允許的格式zip、TextRecordInputStream、Avro。當檔案為文字檔案時,等同於cat。例:
[root@slave1 tmp]# hadoop fs -text /input.txt
hello hadoop!
hello hadoop!
- checksum:顯示檔案的校驗和資訊。因為需要和儲存檔案每個塊的datanode互相通訊,因此對大量的檔案使用此命令效率可能會低
[root@slave1 tmp]# hadoop fs -checksum /input.zip
/input.zip MD5-of-0MD5-of-0CRC32 00000000000000000000000070bc8f4b72a86921468bf8e8441dce51
檔案及目錄相關命令
- touchz : 建立一個空檔案,如果存在指定名稱的非空檔案,則返回錯誤。
[root@slave1 tmp]# hadoop fs -touchz /input.zip
[root@slave1 tmp]# hadoop fs -touchz /input
[root@slave1 tmp]# hadoop fs -ls /
Found 2 items
-rw-r--r-- 2 root supergroup 0 2017-05-27 10:09 /input
-rw-r--r-- 2 root supergroup 0 2017-05-27 10:00 /input.zip
- appendToFile: 向現有檔案中追加內容。
[root@slave1 tmp]# hadoop fs -touchz /input.txt --建立一個input.txt檔案
[root@slave1 tmp]# hadoop fs -text /input.txt --檢視建立的input.txt的內容
[root@slave1 tmp]# hadoop fs -appendToFile ~/text/input.txt /input.txt -- 從本地檔案讀取內容,並且將內容新增到之前建立的檔案中。
[root@slave1 tmp]# hadoop fs -text /input.txt
hello hadoop!
[root@slave1 tmp]# hadoop fs -appendToFile /test/input.txt /input.txt
[root@slave1 tmp]# hadoop fs -text /input.txt
hello hadoop!
hello hadoop!
- put: 從本地上傳檔案。(小編本來想一將txt傳到制定資料夾,但是不知道為什麼,/input識別出來不是資料夾,是檔案,並且作為檔案,往裡面填寫內容)
[hadoop@slave1 tmp]$ hadoop fs -put ~/Desktop/input1.txt /
[hadoop@slave1 tmp]$ hadoop fs -text /input1.txt --檢視上傳後的檔案內容
hello hadoop!
選項-f:如果檔案已經存在,覆蓋已有檔案
[[email protected] tmp]$ hadoop fs -put ~/Desktop/input1.txt /
put: /input1.txt': File exists --檔案已存在時給出錯誤提示
[[email protected] tmp]$ hadoop fs -put -f ~/Desktop/input1.txt / --使用-f選項後沒有再報錯
選項-p:保留原檔案的訪問、修改時間,使用者和組,許可權屬性
[root@slave1 tmp]# ll /test/input1.txt
-rw-r--r--. 1 root root 14 5月 26 17:19 /test/input1.txt
[root@slave1 tmp]# chmod 777 /test/input1.txt
[root@slave1 tmp]# hadoop fs -put -f /test/input1.txt /
[root@slave1 tmp]# hadoop fs -ls /input1.txt
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:24 /input1.txt
[root@slave1 tmp]# hadoop fs -put -f -p /test/input1.txt /
[root@slave1 tmp]# hadoop fs -ls /input1.txt
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
- get: 從HDFS上下載檔案到本地,與put不同,沒有覆蓋本地已有檔案的選項。
[[email protected] tmp]# hadoop fs -get /input1.txt /test
get: `/test/input1.txt': File exists
[[email protected] tmp]# hadoop fs -get /input1.txt /test/input2.txt
[[email protected] tmp]# cat /test/input2.txt
hello hadoop!
- getmerge: 將指定的HDFS中原目錄下的檔案合併成一個檔案並下載到本地,原始檔保留。
- 選項-nl:在每個檔案的最後增加一個新行
[root@slave1 tmp]# hadoop fs -ls /test
Found 2 items
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
[root@slave1 tmp]# hadoop fs -getmerge -nl /test /test/merge.txt
[root@slave1 tmp]# cat /test/merge.txt
hello hadoop!
welcome to hadoop
copyFromLocal: 從本地檔案系統上傳檔案到HDFS,與put命令相同。
copyToLocal: 從HDFS下載檔案到本地檔案系統,與get命令相同。
moveFromLocal: 與put命令相同,只是上傳成功後本地檔案會被刪除。
mv: 同linux的mv命令,移動或重新命名檔案。
[[email protected] tmp]# hadoop fs -ls
ls: `.': No such file or directory
[[email protected] tmp]# hadoop fs -ls /
Found 6 items
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:16 /input
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
**-rw-r--r-- 2 root supergroup 0 2017-05-27 10:00 /input.zip**
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 13:54 /test
[[email protected] tmp]# hadoop fs -mv /input.zip /input1.zip
[[email protected]lave1 tmp]# hadoop fs -ls /
Found 6 items
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:16 /input
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
**-rw-r--r-- 2 root supergroup 0 2017-05-27 10:00 /input1.zip**
drwxr-xr-x - root supergroup 0 2017-05-27 13:54 /test
[[email protected] tmp]# hadoop fs -mv /input1.zip /input
mv: `/input': File exists
[[email protected] tmp]# hadoop fs -mv /input1.zip /input1
mv: `/input1': File exists
[[email protected] tmp]# hadoop fs -mv /input1.zip /test
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:16 /input
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
**-rw-r--r-- 2 root supergroup 0 2017-05-27 10:00 /test/input1.zip**
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
- cp:複製
選項-f:如果檔案已存在,覆蓋已有檔案
mkdir:建立資料夾
[[email protected] tmp]# hadoop fs -mkdir /input3
[[email protected] tmp]# hadoop fs -ls /
Found 6 items
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:16 /input
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
選項-p:如果上層目錄不存在,遞迴建立所需目錄
[[email protected] tmp]# hadoop fs -mkdir -p /input4/input4_1/input4_1_1
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:16 /input
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:56 /input4
drwxr-xr-x - root supergroup 0 2017-05-27 14:56 /input4/input4_1
drwxr-xr-x - root supergroup 0 2017-05-27 14:56 /input4/input4_1/input4_1_1
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 root supergroup 0 2017-05-27 10:00 /test/input1.zip
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
- rm:刪除檔案
[root@slave1 tmp]# hadoop fs -rm /input
Deleted /input
選項-r:遞迴的刪除,可以刪除非空目錄
[[email protected] tmp]# hadoop fs -rm /input4
rm: `/input4': Is a directory -- 這裡提示資料夾不能刪
[[email protected] tmp]# hadoop fs -rm -r /input4
Deleted /input4
- rmdir: 刪除空目錄
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 root supergroup 0 2017-05-27 10:00 /test/input1.zip
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
[[email protected] tmp]# hadoop fs -rmdir /test
rmdir: `/test': Directory is not empty --目錄非空的話,會報錯
選項–ignore-fail-on-non-empty:忽略非空刪除失敗時的提示。其實是沒有刪除的,但是也沒有失敗提醒。
[[email protected] tmp]# hadoop fs -rmdir --ignore-fail-on-non-empty /test
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rw-r--r-- 2 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 root supergroup 0 2017-05-27 10:00 /test/input1.zip
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
[[email protected] tmp]#
- setrep: 改變一個檔案的副本數
[root@slave1 tmp]# hadoop fs -stat %r /input1
2
[root@slave1 tmp]# hadoop fs -setrep 3 /input1
Replication 3 set: /input1
[root@slave1 tmp]# hadoop fs -stat %r /input1
3
選項-w:命令等待副本數調整完成
[[email protected] tmp]# hadoop fs -setrep -w 1 /input1
Replication 1 set: /input1
Waiting for /input1 ... done
- setrep: 改變一個檔案的副本數
- chgrp: 修改檔案組。 選項-R:遞迴修,如果是目錄,則遞迴的修改其下的檔案及目錄,更新到的檔案組就算不存在,也能更新成功。
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rw-r--r-- 1 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 root supergroup 0 2017-05-27 10:00 /test/input1.zip
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
[[email protected] tmp]# hadoop fs -chgrp test /test/input1.zip
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rw-r--r-- 1 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 root test 0 2017-05-27 10:00 /test/input1.zip
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
- setrep: 修改檔案許可權,許可權模式同linux shell命令中的模式
[[email protected] tmp]# hadoop fs -chmod 754 /input1
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rwxr-xr-- 1 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 root test 0 2017-05-27 10:00 /test/input1.zip
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
- chown: 修改檔案的使用者或組,選項-R:遞迴修改,如果是目錄,則遞迴的修改其下的檔案及目錄
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rwxr-xr-- 1 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 root test 0 2017-05-27 10:00 /test/input1.zip -- 原使用者和組
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
[[email protected] tmp]# hadoop fs -chown test /test/input1.zip
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rwxr-xr-- 1 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 test test 0 2017-05-27 10:00 /test/input1.zip --向用戶和組
-rw-r--r-- 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13:54 /test/test2.txt
- getfacl:訪問控制列表,選項-R:遞迴顯示
[root@slave1 tmp]# hadoop fs -getfacl /test/input1.zip
# file: /test/input1.zip
# owner: test
# group: test
user::rw-
group::r--
other::r--
[root@slave1 tmp]# hadoop fs -getfacl -R /test
# file: /test
# owner: root
# group: supergroup
user::rwx
group::r-x
other::r-x
# file: /test/input1.zip
# owner: test
# group: test
user::rw-
group::r--
other::r--
# file: /test/test.txt
# owner: root
# group: supergroup
user::rw-
group::r--
other::r--
# file: /test/test2.txt
# owner: root
# group: supergroup
user::rw-
group::r--
other::r--
- setfacl:設定訪問控制列表,acls預設未開啟,直接使用該命令會報錯
[[email protected] tmp]# hadoop fs -setfacl -b /test/test.txt
setfacl: The ACL operation has been rejected. Support for ACLs has been disabled by setting dfs.namenode.acls.enabled to false.
開啟acls,配置hdfs-site.xml
[[email protected] hadoop-2.5.2]$ vi etc/hadoop/hdfs-site.xml
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
選項-m:修改acls
[root@slave1 tmp]# hadoop fs -getfacl /test/test.txt
# file: /test/test.txt
# owner: root
# group: supergroup
user::rw-
group::r--
other::r--
[root@slave1 tmp]# hadoop fs -setfacl -m user::rw-,user:hadoop:rw-,group::r--,other::r-- /test/test.txt
[root@slave1 tmp]# hadoop fs -getfacl /test/test.txt
# file: /test/test.txt
# owner: root
# group: supergroup
user::rw-
user:hadoop:rw-
group::r--
mask::rw-
other::r--
選項-x:刪除指定規則
[root@slave1 tmp]# hadoop fs -getfacl /test/test.txt
# file: /test/test.txt
# owner: root
# group: supergroup
user::rw-
user:hadoop:rw-
group::r--
mask::rw-
other::r--
[root@slave1 tmp]# hadoop fs -setfacl -x user:hadoop /test/test.txt
[root@slave1 tmp]# hadoop fs -getfacl /test/test.txt
# file: /test/test.txt
# owner: root
# group: supergroup
user::rw-
group::r--
mask::r--
other::r--
- setfattr:設定擴充套件屬性的名稱和值,
選項-n:屬性名稱 選項-v:屬性值
[[email protected] tmp]# hadoop fs -getfattr -d /test/input.zip
getfattr: `/test/input.zip': No such file or directory
[[email protected] tmp]# hadoop fs -getfattr -d /test/input1.zip
# file: /test/input1.zip
[[email protected] tmp]# hadoop fs -setfattr -n user.web -v www.baidu.com /test/input1.zip
[[email protected] tmp]# hadoop fs -getfattr -d /test/input1.zip# file: /test/input1.zip
user.web="www.baidu.com"
選項-x:刪除擴充套件屬性
[root@slave1 tmp]# hadoop fs -getfattr -d /test/input1.zip# file: /test/input1.zip
user.web="www.baidu.com"
[root@slave1 tmp]# hadoop fs -setfattr -x user.web /test/input1.zip
[root@slave1 tmp]# hadoop fs -getfattr -d /test/input1.zip
# file: /test/input1.zip
- getfattr:設定擴充套件屬性的名稱和值,選項-n:顯示指定名稱的屬性值.
[[email protected] hadoop-2.5.2]$ hadoop fs -getfattr -n user.web /input.zip
# file: /input.zip
user.web="www.baidu.com"
統計相關命令
- count:顯示指定檔案或目錄的:DIR_COUNT、FILE_COUNT、CONTENT_SIZE、 FILE_NAME,分別表示:子目錄個數(如果指定路徑是目錄,則包含該目錄本身)、檔案個數、使用位元組個數,以及檔案或目錄名。
[root@slave1 tmp]# hadoop fs -count /
3 6 88 /
選項-q:顯示配額資訊(在多人共用的情況下,可以通過限制使用者寫入目錄,並設定目錄的quota ,防止不小心就把所有的空間用完造成別人無法存取的情況)。配額資訊包括:QUOTA、REMAINING_QUOTA、SPACE_QUOTA、REMAINING_SPACE_QUOTA,分別表示某個目錄下檔案及目錄的總數、剩餘目錄或文件數量、目錄下空間的大小、目錄下剩餘空間。
計算公式:
QUOTA – (DIR_COUNT + FILE_COUNT) = REMAINING_QUOTA;
SPACE_QUOTA – CONTENT_SIZE = REMAINING_SPACE_QUOTA。
none和inf表示未配置。
[root@slave1 tmp]# hadoop fs -count -q /
9223372036854775807 9223372036854775798 none inf 3 6 88 /
- du:顯示檔案大小,如果指定目錄,會顯示該目錄中每個檔案的大小。
[[email protected] tmp]# hadoop fs -ls -R /
-rw-r--r-- 2 root supergroup 28 2017-05-27 10:15 /input.txt
-rwxr-xr-- 1 root supergroup 14 2017-05-27 11:10 /input1
-rwxrwxrwx 2 root root 14 2017-05-26 17:19 /input1.txt
drwxr-xr-x - root supergroup 0 2017-05-27 14:54 /input3
drwxr-xr-x - root supergroup 0 2017-05-27 14:42 /test
-rw-r--r-- 2 test test 0 2017-05-27 10:00 /test/input1.zip
-rw-r--r--+ 2 root supergroup 14 2017-05-27 13:51 /test/test.txt
-rw-r--r-- 2 root supergroup 18 2017-05-27 13: