shell 命令格式如下
hdfs dfs [通用项]
创建文件夹
命令: hdfs dfs -mkdir [-p] <path>
[-p] :表示如果父类文件夹不存在,先创建父类文件夹
例如:创建文件夹/myfire 、/myfire/fire1/fire2/fire3
hdfs dfs -mkdir /myfire
hdfs dfs -mkdir -p /myfire/fire1/fire2/fire3
(2)列出指定文件和目录
命令:hdfs dfs -ls [-d][-h][-R]<path>
[-d] :返回path
[-h] :h指”human-readble“,表示按照人性化的单位显示文件大小,比如文件会显示10MB,而不会显示10240KB.
[-R] :级联显示根级目录
(3)新建文件
命令:hdfs dfs -touchz<paths>
在当前目录创建一个空文档file
hdfs dfs -touchz file
(4)上传文件
命令:hdfs dfs -put [-f][-p] <localsrc> <dst>
hdfs dfs -copyFromLocal [-f] [-p] [-l] <localsrc> <dst>
put或copyFromLocal命令是将本地文件上传到HDFS。localsrc表示本地文件路径,dst表示保存在HDFS上的路径。
将本地文件data.txt上传到HDFS上的/myfile下,命令为:
hdfs dfs -put data.txt /myfile/data.txt
hdfs dfs -put data.txt /myfile
hdfs dfs -copyFromLocal data.txt /myfile/data.txt
hdfs dfs -copyFromLocal data.txt /myfile
(5)将本地文件移动到HDFS上
命令:hdfs dfs -moveFromLocal <localsrc> <dst>
与 hdfs dfs -copyFromLocal <localsrc> <dst>不同的是,此命令将文件复制到HDFS上后,本地的文件会被删除。
(6)下载文件
命令:hdfs dfs -get [-p] <src> <localdst>
hdfs dfs -copyToLocal [-p] [-ignoreCrc] [-crc] <src> <localdst>
src表示HDFS中文件的完整路径,localdst表示保存在本地的文件名或文件夹的路径
hdfs dfs -get /myfile/data.txt ~/lcoal_data.txt
hdfs dfs -copyToLocal /myfile/data.txt ~/
(7)查看文件
命令:hdfs dfs -cat/text[ignoreCrc] <src>
hdfs dfs -tail [-f] <file>
-ignoreCrc : 忽略循环检验失败的文件
-f :动态更新显示数据。
hdfs dfs -cat /myfile/data.txt
(8)追写文件
命令:hdfs dfs -appendToFile <localsrc> <dst>
该命令将localsrc指向的本地文件内容写入目标文件dst。如果localsrc是“-”,表示数据来自间盘输入,Ctrl+C组合键结束输入
hdfs dfs -appendToFile data4.txt /myfile/data.txt
(9) 删除目录或者文件
命令:hdfs dfs -rm [-f] [-r] <src>
-f : 如果要删除的文件不存在,不显示错误信息。
-r/R : 级联删除目录下所有的文件和子目录文件。
hdfs dfs -rm /myfile/data3.txt
(10)显示占用磁盘空间大小
命令: hdfs dfs -du [-s] [-h] <src>
按字节显示指定目录所占空间大小。
-s :显示指定目录下文件总的大小。
-h :h指”human-readble“,表示按照人性化的单位显示文件大小,比如文件会显示10MB,而不会显示10240KB.
hdfs dfs -du /myfile
(11)HDFS中的文件复制
命令 : hdfs dfs -cp [-f] [-p | -o[topax]] <src> <dst>
-f : 如果目标存在,将强行覆盖。
-p : 将保存文件属性。
hdfs dfs -cp /myfile/data.txt /myfile/copy_data.txt
(12)HDFS中的文件移动(改名)
命令 : hdfs dfs -mv <src> <dst>
hdfs dfs -mv /myfile/data.txt /myfile/file1/data0.txt
(13) HDFS中的文件合并后下载
命令 : hdfs dfs -getmerge [-nl] <src> <localdst>
将HDFS中myfile目录下(不包含子目录)的文件合并后再下载到本地。
hdfs dfs -getmerge /myfile merge.txt
(14)统计
命令 : hdfs dfs -count [-q] [-h] <path>
统计某个目录下的子目录与文件的个数及文件大小。统计结果包括目录数、文件数、文件大小。
hdfs dfs -count /myfile