HDFS文件系统操作命令
1、HDFS启动关闭HDFS和普通的硬盘上的文件系统不一样,是通过Java虚拟机运行在整个集群当中的,所以当Hadoop程序写好之后,需要启动HDFS文件系统,才能运行:①启动 》》进入到NameNode对应节点的Hadoop安装目录下 》》执行 bin/start-dfs.sh (2.6.4中 sbin/
1、HDFS启动关闭
HDFS和普通的硬盘上的文件系统不一样,是通过Java虚拟机运行在整个集群当中的,所以当Hadoop程序写好之后,需要启动HDFS文件系统,才能运行:
①启动 》》进入到NameNode对应节点的Hadoop安装目录下
》》执行 bin/start-dfs.sh (2.6.4中 sbin/start-dfs.sh)
这一脚本会启动NameNode,然后根据conf/slaves中的记录逐个启动DataNode,最后根据conf/masters中记录的Secondary NameNode地址启动SecondaryNameNode 在Hadoop2.6.4中在etc/hadoop/slaves
②关闭 HDFS关闭过程 bin/stop-dfs.sh (2.64中, sbin/stop-dfs.sh)
运行正好是启动的逆过程,关闭Secondary NameNode ,然后 关闭每个DataNode,最后是NameNode自身
在运行(2.6.4过程中 ,启动和关闭顺序都是 NameNode DataNode Secondarynamenode)
2、HDFS文件操作命令格式与注意事项
①HDFS的基本命令格式如下: bin/hadoop dfs -cmd <args> 这里cmd就是具体的命令,记住cmd前面的短线“-”不可忽略
example bin/hadoop dfs -cat file:///usr/hadoop/hadoop264/license.txt
②部分命令如(mkdir等) 需要文件目录名作为参数,参数一般都是URI格式,args参数的基本格式: scheme://authority/path
scheme指具体的文件系统,如果是本地文件,那么scheme就是file;
如果是HSFS上的文件,那么scheme就是hdfs。
authority就是机器的地址和对应的端口。
正如Linux文件有绝对路径和相对路径一样,这里的URI参数也可以做一定程度省略。当对应的设置为hdfs://namenode:namenodeport时,如果路径参数为/parent/child,那么它对应的实际文件为 hdfs://namenode:namenodeport/parent/child
③HDFS没有所谓的当前工作目录的概念。
3、cat
hadoop dfs -cat URI [uri ...]
作用:将参数所指示的文件内容输出到stdout
例子 bin/hadoop dfs -cat hdfs://192.168.176.128:9000/test/output/part-r-00000
4、chgrp
格式 hadoop dfs -chgrp [-R] GROUP URI [uri ....]
作用: 改变文件所属的用户组。如果出现-R选项,则这一操作对整个目录结构递归执行。使用这一命令的用户必须是文件的所属用户,或者超级用户。
5、chmod
格式 hadoop dfs -chmod [-R] <MODE[,MODE]...|OCTALMODE> URI[URI ...]
作用: 改变文件权限。如果使用 -R 选项,则对整个目录有效递归执行。使用这一命令的用户必须是文件的所属用户,或者超级用户。
bin/hadoop dfs -chmod -R 777 hdfs://master:9000/test/input
6、copyFromLocal
格式 hadoop dfs -copyFromLocal <localsrc> URI
作用 与put命令类似,但是要限定源文件路径为本地文件系统
bin/hadoop dfs -copyFromLocal /usr/src/linux-headers-3.13.0-24/Makefile hdfs://master:9000/test/input/makefile
7、copyToLocal
格式 hadoop dfs -copyToLocal 【-ignorecrc】 [-crc] URI <localdst>
作用 与get命令类似,但是要限定目标文件路径为本地文件系统
bin/hadoop dfs -copyToLocal hdfs://master:9000/test/input/makefile ~/makefile
注意权限问题 要使用 chmod修改权限
8、count
格式 hadoop dfs -count 【-q】 <paths>
作用 统计匹配对应路径下的目录树,文字数,字节数(文件大小)
选项 意义;使用-count选项时,输出的列为:
DIR_COUNT , FILE_COUNT, CONTENT_SIZE ,FILE_SIZE
使用 -count - q 选项时,输出的列为:
QUOTA,REMAINING_QUOTA, SPACE_QUOTA,REMAINING_SPACE_QUOTA, DIR_COUNT, FILE_COUNT ,CONTENT_SIZE , FILE_NAME
意义是 : 目录下最大允许的文件+目录数(不存在上限,则为none),目录下可增加目录+文件数(不存在上限,则为inf),目录下最大允许空间(不存在上限,则为none),目录下可用最大空间(不存在上限,则为inf);后面的几个和 -count选项一致,分别对应目录下已存在的目录数,文件数,文件大小,文件名。
例子: bin/hadoop dfs -count hdfs://master:9000/test/input/masters
bin/hadoop dfs -count -q hdfs://master:9000/test/input/masters
9、cp
格式 hadoop dfs -cp URI [URI ...] <dest>
作用 将文件拷贝到目标路径中。如果<dest> 为目录的话,可以将多个文件拷贝到该目录下。
bin/hadoop dfs -cp file:///home/hadoopuser1/Downloads/sh.c file:///home/hadoopuser1/Downloads/part hdfs://master:9000/test/input
10、du
格式 : hadoop dfs -du 【-s】 【-h】 URI 【URI 。。。】
作用 如果参数为 目录,显示该目录下所有目录 + 文件的大小;如果参数为单个文件,则显示文件大小
选项意义:
-s 指输出所有文件的累加和,而不是每个文件的大小
-h 会将文件大小的数值用方便阅读的形式表示,比如用64.0M代替67108864
11、dus
格式 hadoop dfs -dus <args>
作用 显示文件的大小, 此命令等价于 bin/hadoop dfs -du -s
bin/hadoop dfs -dus -h file:///home/hadoopuser1/Downloads/
12、expunge
格式 hadoop dfs -expunge
作用 清空回收站,如需更多有关回收站特性的信息
13、get
格式 bin/hadoop dfs -get [-ignorecrc ] [-crc] <src> <localdst>
作用:将文件拷贝到本地文件系统。 CRC 校验失败的文件通过-ignorecrc选项拷贝。 文件和CRC校验和可以通过-CRC选项拷贝
14、getmerge
格式: bin/hadoop dfs -getmerge <src><localdst> [addnl]
作用: 命令参数为一个源文件目录和一个目的文件。将源文件目录下的所有文件排序后合并到目的文件中。 添加addnl 可以在每个文件后面插入新行
15、ls
格式: hadoop dfs -ls <args>
作用:对于一个文件,该命令返回的文件状态以如下格式列出:
permissions number_of_replicas userid groupid filesize modification_data modification_time filename
意义: 文件权限,副本个数,用户ID,组ID,文件大小,最近一次修改日期,最近一次修改时间,文件名
16、lsr
格式 hadoop dfs -lsr <args>
作用 在整个目录下递归执行ls, 与UNIX中的ls-R类似
17.mkdir
格式 : hadoop dfs -mkdir <paths>
作用 以<paths>中的URI作为参数,创建目录。该命令的行为与Unix中的 mkdir-p的行为十分相似,这一路径上的父目录不存在,则创建该父目录。
18、moveFromLocal
格式: hadoop dfs -moveFromLocal <localsrc><dst>
作用 和put命令类似,但是源文件localsrc拷贝之后自身被删除
19 、 moveToLocal
格式 ; hadoop dfs -moveToLocal 【-crc】 <src> <dst>
作用: 输出“Not implement yet ” 还未实现moveToLocal: Option '-moveToLocal' is not implemented yet. 2.6.4结果
20.mv
格式 : hadoop dfs -mv URI 【URI。。。】 <dest>
作用: 将文件从原路径移动到目标路径(移动之后文件删除)。目标路径为目录的情况下,源路径可以有多个。跨文件系统的移动(从本地到HDFS或相反是不允许的)
21、put
格式 : bin/hadoop dfs -put <localsrc > ... <dst>
作用 : 将单个的源文件src或者多个源文件srcs从本地文件系统拷贝到目标文件系统中(<dst>对应的路径)。也可以从标准输入中读取输入,写入目标文件系统中
bin/hadoop dfs -put ~/Downloads/test/a.txt file:///home/hadoopuser1/Downloads/a.txt ok
bin/hadoop dfs -put ~/Downloads/test/a.txt ~/Downloads/a.txt 不行
bin/hadoop dfs -put - hdfs://master:9000/test/input/a.txt yEs
bin/hadoop dfs -put file:///home/hadoopuser1/Downloads/a.txt NO
22、rm
格式: hadoop dfs -rm 【-skipTrash】 URI 【URI 。。。】
作用: 删除参数指定的文件,参数可以有多个。 此命令只删除文件和非空目录。
如果指定-skipTrash选项,那么在回收站可用的情况下,该选项将跳过回收站而直接删除文件;
否则,在回收站可用时,在HDFS Shell 中执行此命令,会将文件暂时放到回收站中。这一选项在删除超过容量限制的目录中的文件是很有用
23、rmr
格式: hadoop dfs -rmr 【-skipTrash】 URI 【URI 。。。】
作用: 删除操作的递归版本,即递归的删除所有子目录下的文件。
24 、 setrep
格式; hadoop dfs -setrep 【-R] <path>
作用: 改变一个文件在HDFS总的副本个数。使用-R选项可以对一个目录下的所有目录+文件递归执行改变副本个数的操作
hadoop dfs -setrep -w 3 -R /user/hadoop/dir1
25、 stat
格式; hadoop dfs -stat 【format】 URI 【URI...】
作用: 返回对应路径的状态信息。可以通过与C语言中的printf类似的格式化字符串定制输出格式,这里支持的格式字符有:
%b 文件大小
%o Block大小
%n 文件名
%r 副本个数
%y或%Y 最后一次修改日期和时间
默认情况下输出最后一次修改日期和时间
26、tail
格式 : hadoop dfs -tail 【-f】 URI
作用; 在标准输出中显示文件末尾的1KB数据。 -f 的用法与Unix类似,也就是说当文件尾部添加了新的数据或者作出了修改时,在标准输出中也会刷新显示
27、 test
格式: hadoop dfs -test -【ezd】 URI
作用: 判断文件信息
选项含义:
-e: 检查文件是否存在,如果存在返回0
-z : 检查文件大小是否为0 , 是的话返回 0
-d : 检查这一路经是否为目录,是的话返回 0
如果返回0 则不输出,否则会输出响应的信息。
28、 text
格式 : hadoop dfs -text <src>
作用: 将文本文件或者某些格式的非文本文件通过文本格式输出。允许的格式有zip和TextRecordInputStream
29、 touchz
格式: hadoop dfs -touchz URI 【URI 。。。】
作用; 创建一个大小为 0 的文件
更多推荐
所有评论(0)