Hadoop命令操作
Hadoop 命令主要包括用户命令和管理员命令。下面红框标出的是需要重点了解的hadoop命令。本文基于apache hadoop2.6.4 版本,主要讲解用户命令中的hdfs命令的使用。
apache hadoop2.6.4 hadoop commands官方网站:
http://hadoop.apache.org/docs/r2.6.4/hadoop-project-dist/hadoop-common/CommandsManual.html
1.fs命令简介
fs命令是hadoop对HDFS(分布式文件系统)操作的指令。
已经被hdfs dfs命令替换。
官方描述:
fs主要包括下面这些命令:
2.常用fs命令
2.1 文件操作
1. ls 显示目录下的所有文件
hdfs dfs -ls [-R] <args>
查询目录下的文件信息。
参数:
-R:是否级联查询。
hdfs dfs -ls -R /0423
2. cp 文件拷贝
hdfs dfs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
参数说明:
-f:如果目标文件已经存在,覆盖目标文件
-p:保留文件属性[topx](时间戳,所有权,权限,ACL,XAttr)。即将文件的时间戳,所有权,权限等一并拷贝过去,否则拷贝的文件使用默认的属性信息。
示例:
hdfs dfs -cp /0423/helloword.txt /0423/helloword2.txt
3. mv 文件移动
hdfs dfs -mv URI [URI ...] <dest>
示例:
hdfs dfs -mv /0423/helloword.txt /0424
4. rm 删除文件
hdfs dfs -rm [-f] [-r|-R] [-skipTrash] URI [URI ...]
参数说明:
-f:不显示执行错误信息
-R:级联删除下面的所有文件和文件夹
-skipTrash 选项将绕过垃圾桶(如果启用),并立即删除指定的文件。 当需要从超配额目录中删除文件时,这很有用。
示例:
hdfs dfs -rm /user/hadoop/emptydir
5. touchz 创建文件
hdfs dfs -touchz URI [URI ...]
在hdfs目录下创建文件。如果文件已经存在,创建失败。
示例:
hdfs dfs -touchz /0424/helloword1.txt
6.test 测试文件/目录是否存在或者为空
hdfs dfs -test -[ezd] URI
参数说明:
-e:判断是否为文件,如果是返回0
-z:判断文件长度是否为0,如果是返回0
-d:判断是否为文件夹,如果是返回0
示例:
hdfs dfs -test -e filename
7.put 文件上传
hdfs dfs -put <localsrc> ... <dst>
示例:
hdfs dfs -put helloword.txt /0423
8.get 拷贝文件到本地
hdfs dfs -get [-ignorecrc] [-crc] <src> <localdst>
从hdfs上拷贝文件到本地。
示例:
hdfs dfs -get /user/hadoop/file localfile
9.copyFromLocal 拷贝文件到hdfs
hdfs dfs -copyFromLocal <localsrc> URI
拷贝一个本地的文件到hdfs,类似于put
参数说明:
-f:如果目标文件已经存在,覆盖目标文件
10.copyToLocal 拷贝文件到本地
hdfs dfs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
从hdfs上拷贝文件到本地。与get命令类似
11.appendToFile 追加文件内容到hdfs文件
hdfs dfs -appendToFile <localsrc> ... <dst>
将一个或者多个文件添加到HDFS 文件
示例:
hdfs dfs -appendToFile localfile /user/hadoop/hadoopfile
hdfs dfs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile
2.2 查看文件内容
1. cat 显示文件内容
hdfs dfs -cat URI [URI ...
示例:
hdfs dfs -cat /0423/helloword.txt
2. tail 显示文件末尾
hdfs dfs -tail [-f] URI
参数说明:
-f :将文件增长的信息追加显示到文件末尾
示例:
hdfs dfs -tail -f /0423/helloword.txt
3. text 格式化输出文件的内容
hdfs dfs -text <src>
示例:
hdfs dfs -text /0423/helloword1.txt
2.3 目录相关
1. mkdir创建目录
hdfs dfs -mkdir [-p] <paths>
参数说明:
-p:与Unix mkdir -p非常相似,它会沿着路径创建父目录。
示例:
hdfs dfs -mkdir /user/hadoop/dir1
2.du查看目录大小
hdfs dfs -du [-s] [-h] URI [URI ...]
查询目录文件的大小,默认展示字节。
参数说明:
-s:显示目录下所有文件汇总的大小,而不是文件单独一个个显示
-h:显示格式化后的文件大小,例如: 64.0m代替 67108864
示例:
hdfs dfs -du -h /0423
2.4 用户、权限操作
1. chgrp:更改用户组
hdfs dfs -chgrp [-R] GROUP URI [URI ...]
命令说明:更改文件所属用户组,操作用户必须是文件的所有者,或者超级权限用户。
参数说明:-R 表示级联修改。
示例:
hdfs dfs -chgrp hadoop /0423/helloword.txt
2. chmod:更改权限
hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
命令说明:更改文件所属用户组,操作用户必须是文件的所有者,或者超级权限用户。
参数说明:-R 表示级联修改。
示例:
hdfs dfs -chmod 755 /0423/helloword.txt
3.chown:更改用户
hdfs dfs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
命令说明:更改文件所属用户组,操作用户必须是文件的所有者,或者超级权限用户。
参数说明:-R 表示级联修改。
示例:
hdfs dfs -chown hadoop1 /0423/helloword.txt