以下代码中的 hdfs dfs 也可以用 hadoop fs 代替,看个人使用习惯。
一、查看整个hdfs集群的文件
hdfs dfs -ls [hdfs集群的目录]
hdfs dfs -ls / (展示hdfs系统根目录下的内容,而不是Linux系统的根目录)
hdfs dfs -ls -R / (加上-R则可以递归展示根目录下全部内容)
实战环境演示:
由以下截图可以看到,目前我的hdfs系统中只有一个文件夹aa.
文件夹中有一个文件夹bb和一个名为test的txt文本.
二、从本地上传文件到hdfs
可以用put或者copyFromLocal :
hdfs dfs -put [文件所在本机系统目录] [移动至hdfs目录位置]
hdfs dfs -copyFromLocal [文件所在本机系统目录] [移动至hdfs目录位置]
实战环境演示:
以下操作为 把本地名为 test02 的txt文件上传到hdfs系统的根目录下。
三、从hdfs下载文件到本地
可以用get 或者 copyToLocal :
hdfs dfs -get [hdfs的目录] [本地目录]
hdfs dfs -copyToLocal [hdfs的目录] [本地目录]
实战环境演示
首先把本地的test.txt删掉以做示范,
再将hdfs系统里的test.txt文件下载到本地系统.
另外,可以用-getmerge 将文件夹下所有文件合并成一个文件,并下载到本地。
如下截图为将hdfs系统里aa文件夹下的所有txt文本合并并且下载到本地存储命名为c.txt的操作.
用cat命令查看c.txt,已经将test.txt和test03.txt的两个文本的两句话合并在一起。
四、复制(hdfs→hdfs)
1、只是在hdfs系统内部的复制
hdfs dfs -cp [目标文件的目录] [复制到哪里]
2、从本地文件系统中拷贝文件到 hdfs 文件系统去
hdfs dfs -copyFromLocal [本地文件目录] [hdfs目录]
3、从 hdfs 拷贝到本地
hdfs dfs -copyToLocal [hdfs文件目录]
实战环境演示
以下操作为 将hdfs系统里aa文件夹下的test.txt文件复制到hdfs根目录并查看根目录。
五、移动文件
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个节点):