以下代码中的 hdfs dfs 也可以用 hadoop fs 代替,看个人使用习惯。

 一、查看整个hdfs集群的文件

hdfs dfs -ls [hdfs集群的目录]

hdfs dfs -ls /   (展示hdfs系统根目录下的内容,而不是Linux系统的根目录)

hdfs dfs -ls -R /  (加上-R则可以递归展示根目录下全部内容)

 实战环境演示:

由以下截图可以看到,目前我的hdfs系统中只有一个文件夹aa.

文件夹中有一个文件夹bb和一个名为test的txt文本.

hadoop根目录 hdfs根目录_hadoop根目录

二、从本地上传文件到hdfs

可以用put或者copyFromLocal :

hdfs dfs -put [文件所在本机系统目录] [移动至hdfs目录位置]

hdfs dfs -copyFromLocal [文件所在本机系统目录] [移动至hdfs目录位置]

 实战环境演示:

以下操作为 把本地名为 test02 的txt文件上传到hdfs系统的根目录下。

hadoop根目录 hdfs根目录_根目录_02

hadoop根目录 hdfs根目录_hadoop_03

三、从hdfs下载文件到本地

 

可以用get 或者 copyToLocal :

hdfs dfs -get [hdfs的目录] [本地目录]

hdfs dfs -copyToLocal [hdfs的目录] [本地目录]

实战环境演示

首先把本地的test.txt删掉以做示范,

再将hdfs系统里的test.txt文件下载到本地系统.

hadoop根目录 hdfs根目录_hdfs_04

另外,可以用-getmerge 将文件夹下所有文件合并成一个文件,并下载到本地。

如下截图为将hdfs系统里aa文件夹下的所有txt文本合并并且下载到本地存储命名为c.txt的操作.

用cat命令查看c.txt,已经将test.txt和test03.txt的两个文本的两句话合并在一起。

hadoop根目录 hdfs根目录_hadoop_05

hadoop根目录 hdfs根目录_数据库_06

四、复制(hdfs→hdfs)

1、只是在hdfs系统内部的复制

hdfs dfs -cp [目标文件的目录] [复制到哪里]

2、从本地文件系统中拷贝文件到 hdfs 文件系统去

hdfs dfs -copyFromLocal [本地文件目录] [hdfs目录]

3、从 hdfs 拷贝到本地

hdfs dfs -copyToLocal [hdfs文件目录]

 

实战环境演示

以下操作为 将hdfs系统里aa文件夹下的test.txt文件复制到hdfs根目录并查看根目录。

hadoop根目录 hdfs根目录_根目录_07

五、移动文件

1、只是在hdfs系统里移动文件:(移动之后文件删除)

hdfs dfs -mv [目标文件的目录] [移至目录] 

 

2、从hdfs剪切到本地

hdfs dfs -moveToLocal [hdfs目录] [本地目录] 

 

3、从本地剪切到hdfs

hdfs dfs -moveFromLocal [本地目录] [hdfs目录] 

 

六、删除

1、删除文件或文件夹  -rm

hdfs dfs -rm -r [hdfs文件或文件夹目录]

2、删除空目录 -rmdir

hdfs dfs -rmdir [hdfs文件夹目录]

七、打印文件

-cat

功能:显示文件内容(不能作用于压缩包)

用法:hdfs dfs -cat [hdfs文件目录]

-text

功能:以字符串的形式打印一个文件的内容(可以打印出压缩包内容)

用法:hdfs dfs -text [hdfs文件目录]

-tail

功能:显示一个文件的末尾

用法:hdfs dfs -tail [hdfs文件目录]

八、设置副本数

设置hdfs文件的副本数量

hdfs dfs -setrep 3 [hdfs文件目录]

九、查看集群状态

设置hdfs集群工作状态的命令

hdfs dfsadmin -report

实战环境演示

如图,会显示每个节点的状态和存储情况(本机搭建了3个节点):

hadoop根目录 hdfs根目录_hadoop_08