HDFS常用命令介绍与使用

HDFS命令行接口

前言:Hadoop自带一组命令行工具,而其中有关HDFS的命令是其工作集的一个子集。命令行工作虽然是最基本的文件操作方式

但也是最常用的,所以熟练掌握是很必要的

1. 目录浏览命令

 ls

hdfs dfs -ls <path> 

列出文件和目录内容

例子:hdfs dfs -ls /

 lsr

 hdfs dfs -lsr <path>

递归列出目录内容

例子:hdfs dfs -lsr /

df

hdfs dfs -df <path>

查看目录使用情况

例子:hdfs dfs -df /

du

hdfs dfs -du <path>

查看该目录下所有目录及文件的大小

例子:hdfs dfs -du /

 dus

 hdfs dfs -dus <path>

只显示<path>目录的总大小,与du不同的是du会把<path>目录下所有目录和文件都列举

出来,而dus只会将<dus>目录的大小列出来

例子:hdsf dfs -dus /

2. 目录或文件统计与测试命令

count

hdfs dfs -count [-q] <path>

显示<path>下的目录数及文件数,输出格式:"目录数 文件数 大小 路径"

值得注意的是,统计是包含<path>本身这个目录或者文件,且是递归统计

加上-q还可以查看文件的索引情况

例子:hdfs dfs -count /

test

hdfs dfs -test [-ezd] <path>

检查HDFS上路径为<path>的文件

-e 检查文件是否存在,如果存在则返回0

-z 检查文件是否是0字节。如果是则返回0

-d 如果路径是个目录,则返回0,否则返回1

例子:hdfs dfs -test -e /user/file

stat

显示HDFS上路径为<path>的文件或目录的统计信息。格式为:

%b    文件大小

%n    文件名

%r    复制因子

%y,%Y        修改日期

例子:hdfs dfs -stat %b  %n  %r  %y  /user/file

 3. 文件浏览命令

cat

hdfs dfs -cat <src>

浏览HDFS路径为<src>的文件内容

例子:hdfs dfs -cat /user/file

text

hdfs dfs -text <src>

将HDFS路径为<src>的文本文件输出

例子:hdfs dfs -text /user/file

 tail

hdfs dfs -tail [-f] <file>

显示HDFS上路径为<file>的文件最后1KB字节

-f选项会使显示的内容随文件内容更新而更新

例子:hdfs dfs -tail -f /user/file

4. 目录操作命令

rmr

hdfs dfs -rmr [-skipTrash] <path>

将HDFS路径为<path>的目录以及目录下的文件移近回收站

如果加上了-skipTrash参数,则直接删除

例子:hdfs dfs -skipTrash /user

mkdir

hdfs dfs -mkdir [-p] <path>

在HDFS上创建路径为<path>的目录

-p 可以创建不存在的父目录,也就是递归创建目录

hdfs dfs -mkdir -p /hdfs/d1/d2/d3

5. 文件操作命令

HDFS文件系内文件操作

rm

hdfs dfs -rm [skipTrash]  <path>

将HDFS上路径为<path>的文件移动到回收站

如果加上-skipTrash参数,则直接删除

例子:hdfs dfs -rm -skipTrash /user/file

touchz

hdfs dfs -touchz <path>

创建一个路径为<path>的0字节的HDFS空文件 

例子:hdfs dfs -touchz /user/file

 setrep

 hdfs dfs -setrep [-R] [-w] <rep> <path/file>

设置文件负责因子。该命令可以单独设置文件的负责因子

加上-R可以递归执行该操作

例子:hdfs dfs -setrep -R 1 /user  

expunge

hdfs dfs -expunge 

清空回收站

例子:hdfs dfs -expunge 

mv

hdfs dfs -mv <scr> <dst>

将HDFS上的文件移动到目标文件夹

例子:hdfs dfs -mv /user/test.txt user/test

将/user目录下的test.txt文件移动到/user/test目录下

Local到HDFS的文件操作

put

hdfs dfs -put <localsrc> <dst>

将<localsrc>本地文件上传到HDFS的<dst>目录下

hdfs dfs -put /home/hadoop/test.txt   /user/

copyFromLocal

hdfs dfs -copyFromLocal <localsrc> <dst>

功能类似put

hdfs dfs -copyFromLocal /home/hadoop/test.txt   /user

moveFromLocal

hdfs dfs -moveFromLocal <localsrc> <dst>

将<localsrc>本地文件移动到HDFS的<dst>目录下,本地删除

hdfs dfs -moveFromLocal  /home/hadoop/test.txt   /user

appendToFile

-appendToFile <localsrc> <dst>

将<localsrc>本地文件内容追加到HDFS下<dst>路径文件里面去

hdfs dfs -appendToFile ./test.txt  /hdfs/test.txt

HDFS到Local的文件操作

get

hdfs dfs -get [-ignoreCrc] [-crc] <src> <localdst>

将HDFS上<src>的文件下载到本地的<localdst>目录

-ignoreCrc选项复制CRC验证失败的文件

-crc选项复制文件以及CRC信息

例子:hdfs dfs -get -crc /user/file /home/hadoop

getmerge

hdfs dfs -getmerge <src> <localdst> [addnl]

将HDFS上<scr>目录下的所有文件按文件名顺序合并成一个文件输出

到本地的<localdst>目录下

addnl可选,用于指定在每个文件结尾添加一个换行符

例子:hdfs dfs -getmerge /user/  /home/hadoop

copyToLocal

hdfs dfs -copyFromLocal [ignoreCrc] [-crc] <src> <localdst>

功能类似与get

例子:hdfs dfs -copyFromLocal -crc /user/file /home/hadoop

moveToLocal 

hdfs dfs -moveToLocal [-crc] <src> <localdst>

将HDFS上路径为<src>的文件移动到本地<localdst>路径下,HDFS上删除

-crc选项复制文件以及CRC信息

例子:hdfs dfs -moveToLocal -crc /user/file /home/hadoop

6. 权限|分组|帮助命令

chmod

hdfs dfs -chmod [-R] <MODE> <path>

改变HDFS上路劲<path>的文件权限,-R选项递归执行该操作

例子:hdfs dfs -chmod -R +r /user    #将/user/目录下所有文件加上文件读权限

例子:hdfs dfs -chmod -R 755 /user    #将/user/目录下所有文件加上rwxr-xr-x权限

chown

hdfs dfs -chown [-R] [OWNER][:[GROUP]]  <path>

修改HDFS上路径为<path>的文件所属用户和组,-R选项表示递归执行该操作

例子:hdfs dfs -chown -R hadoop:hadoop /user   #将/user/目录下所有文件所属用户和组改为hadoop

chgrp

hdfs dfs -chgrp [-R] GROUP <path>

改变HDFS上路径为<path>的文件所属组别,-R表示递归执行该操作

例子:hdfs dfs -chgrp -R hadoop /user/

help

hdfs dfs -help 

显示所有dfs命令的帮助信息

hdfs dfs -help

 

posted @ 2019-09-02 17:09  ItsukiFujii  阅读(2450)  评论(0编辑  收藏  举报