HDFS是一个分布式文件系统,是一个高度容错性的系统,HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

# -ls:查询指定路径信息

首先看第一个ls命令,查看hdfs根目录下的内容,什么都不显示,因为默认情况下hdfs中什么都没有

[root@bigdata01 ~]# hdfs dfs -ls hdfs://bigdata01:9000/
[root@bigdata01 ~]# 

其实后面hdfs的url这一串内容在使用时默认是可以省略的,因为hdfs在执行的时候会根据HDOOP_HOME自动识别配置文件中的fs.defaultFS属性,所以这样简写也是可以的:

[root@bigdata01 ~]# hdfs dfs -ls /

# -put:从本地上传文件

接下来我们向hdfs中上传一个文件,使用Hadoop中的README.txt,直接上传到hdfs的根目录即可

[root@bigdata01 ~]# cd /usr/local/soft/hadoop/hadoop-3.2.3
[root@bigdata01 hadoop-3.2.3]# hdfs dfs -put README.txt /
[root@bigdata01 mail]# hdfs dfs -ls /
Found 1 items
-rw-r--r--   1 root supergroup       1361 2022-10-11 18:36 /README.txt

# -get:下载文件到本地

[root@bigdata01 hadoop]# ls
hadoop-3.2.3  hadoop-3.2.3.tar.gz
[root@bigdata01 hadoop]# hdfs dfs -get /README.txt
[root@bigdata01 hadoop]# ls
hadoop-3.2.3  hadoop-3.2.3.tar.gz  README.txt

# -cat:查看文件内容

[root@bigdata01 hadoop]# hdfs dfs -cat /README.txt

# -mkdir:创建文件夹

[root@bigdata01 hadoop]# hdfs dfs -mkdir /test
[root@bigdata01 hadoop]# hdfs dfs -ls /
Found 2 items
-rw-r--r--   1 root supergroup       1361 2022-10-11 18:36 /README.txt
drwxr-xr-x   - root supergroup          0 2022-10-11 18:51 /test

# -rm [-r]:删除文件/文件夹,加上-r递归删除目录

[root@bigdata01 hadoop]# hdfs dfs -rm -r /test

# 灵活使用——统计HDFS中文件的个数和每个文件的大小

HDFS命令配合Linux命令能够完成一些高级操作,Linux高级命令参考

[root@bigdata01 hadoop]# hdfs dfs -ls / |grep / | wc -l #统计文件数量
[root@bigdata01 hadoop]# hdfs dfs -ls / |grep / | awk '{print $8,$5}' #统计每个文件的大小