创建文件目录
[ hadoop @node01 ~]$ HDFS dfs -mkdir -p /user/hadoop
[hadoop@node01 ~]$ hdfs dfs -mkdir -p /user/sqoop
通过命令查看文件目录
[hadoop@node01 ~]$ hdfs dfs -ls -R /
drwxr-xr-x - hadoop supergroup 0 2020-06-22 15:21 /user
drwxr-xr-x - hadoop supergroup 0 2020-06-22 15:19 /user/hadoop
drwxr-xr-x - hadoop supergroup 0 2020-06-22 15:21 /user/sqoop
把本地文件上传到HDFS
# 先在本地建立一个word.txt
[hadoop@node01 ~]$ vim word.txt
# 把文件上传到HDFS上的/user/hadoop目录下
[hadoop@node01 ~]$ hdfs dfs -copyFromLocal word.txt /user/hadoop
# 查看文件
[hadoop@node01 ~]$ hdfs dfs -ls /user/hadoop
Found 1 items
-rw-r--r-- 3 hadoop supergroup 104 2020-06-22 15:25 /user/hadoop/word.txt
# 再次上传该文件到该目录(如果需要覆盖,需要加-f参数)
[hadoop@node01 ~]$ hdfs dfs -copyFromLocal word.txt /user/hadoop
copyFromLocal: '/user/hadoop/word.txt': File exists
[hadoop@node01 ~]$ hdfs dfs -copyFromLocal -f word.txt /user/hadoop
查看文件的内容
[hadoop@node01 ~]$ hdfs dfs -cat /user/hadoop/word.txt
2020-06-22 15:28:40,023 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false , remoteHostTrusted = false
hello world
hello hadoop
hello world
hello hadoop
hello java
hello scala
hello python
hello hadoop hdfs
用put方式上传本地文件
[hadoop@node01 ~]$ hdfs dfs -put mywords.txt /user/hadoop
# 再次上传
[hadoop@node01 ~]$ hdfs dfs -put mywords.txt -f /user/hadoop
# 一次上传多个文件
[hadoop@node01 ~]$ hdfs dfs -put t1.txt t2.txt /user/hadoop
# 显示文件列表
[hadoop@node01 ~]$ hdfs dfs -ls /user/hadoop
Found 4 items
-rw-r--r-- 3 hadoop supergroup 15 2020-06-22 15:30 /user/hadoop/mywords.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:31 /user/hadoop/t1.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:31 /user/hadoop/t2.txt
-rw-r--r-- 3 hadoop supergroup 104 2020-06-22 15:27 /user/hadoop/word.txt
从hdfs上下载文件到本地
[hadoop@node01 ~]$ hdfs dfs -get /user/hadoop/t1.txt
在hdfs上创建文件
[hadoop@node01 ~]$ hdfs dfs -touchz /user/hadoop/flag.txt
[hadoop@node01 ~]$ hdfs dfs -ls /user/hadoop
Found 5 items
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:40 /user/hadoop/flag.txt
-rw-r--r-- 3 hadoop supergroup 15 2020-06-22 15:30 /user/hadoop/mywords.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:31 /user/hadoop/t1.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:31 /user/hadoop/t2.txt
-rw-r--r-- 3 hadoop supergroup 104 2020-06-22 15:27 /user/hadoop/word.txt
在hdfs上移动文件
[hadoop@node01 ~]$ hdfs dfs -mv /user/hadoop/flag.txt /user/sqoop
[hadoop@node01 ~]$ hdfs dfs -ls /user/sqoop
Found 1 items
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:40 /user/sqoop/flag.txt
查看文件大小
[hadoop@node01 ~]$ hdfs dfs -du -h /user/hadoop
15 45 /user/hadoop/mywords.txt
0 0 /user/hadoop/t1.txt
0 0 /user/hadoop/t2.txt
104 312 /user/hadoop/word.txt
[hadoop@node01 ~]$ hdfs dfs -ls -h /user/hadoop
查看hdfs总共大小
[hadoop@node01 ~]$ hdfs dfs -df -h
Filesystem Size Used Available Use%
hdfs://mycluster 149.9 G 72 K 143.1 G 0%
删除文件
[hadoop@node01 ~]$ hdfs dfs -ls /user/hadoop/test
Found 4 items
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:50 /user/hadoop/test/test.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:51 /user/hadoop/test/test1.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:51 /user/hadoop/test/test2.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:51 /user/hadoop/test/test3.txt
# 删除test1.txt
[hadoop@node01 ~]$ hdfs dfs -rm /user/hadoop/test/test1.txt
Deleted /user/hadoop/test/test1.txt
复制文件
[hadoop@node01 ~]$ hdfs dfs -cp /user/hadoop/test/test.txt /user/hadoop/test/mytest.txt
[hadoop@node01 ~]$ hdfs dfs -ls /user/hadoop/test
Found 4 items
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:55 /user/hadoop/test/mytest.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:50 /user/hadoop/test/test.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:51 /user/hadoop/test/test2.txt
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:51 /user/hadoop/test/test3.txt
复制目录
[hadoop@node01 ~]$ hdfs dfs -cp -p /user/hadoop/test /user/sqoop
[hadoop@node01 ~]$ hdfs dfs -ls /user/sqoop
Found 2 items
-rw-r--r-- 3 hadoop supergroup 0 2020-06-22 15:40 /user/sqoop/flag.txt
drwxr-xr-x - hadoop supergroup 0 2020-06-22 15:55 /user/sqoop/test
删除目录
[hadoop@node01 ~]$ hdfs dfs -rm -r /user/sqoop/test
Deleted /user/sqoop/test
HDFS的命令帮助
[hadoop@node01 ~]$ hdfs dfs -help ls
-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [<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.
-e Display the erasure coding policy of files and directories.