常用的HDFS Shell命令
大多数HDFS Shell命令的行为和对应的Unix Shell命令类似,主要不同之处是HDFS Shell 命令操作的是远程Hadoop服务器的文件,而Unix Shell命令操作的是本地文件。
命令 | 功能 |
---|---|
-help [cmd] | 显示命令的帮助信息 |
-ls( r )
| 显示当前目录下的所有文件 |
-du( s )
| 显示目录中所有文件的大小 |
-count [-q]
| 显示目录中文件数量 |
-mv | 移动多个文件到目标目录 |
-cp | 复制多个文件到目标目录 |
-rm( r ) | 删除文件(夹) |
-put | 本地文件复制到hdfs |
-copyFromLocal | 与put相同 |
-moveFromLocal | 本地文件移动到hdfs |
-get[-ignoreCrc] | 复制文件到本地,可忽略crc校验 |
-getmerge | 将源目录中的所有文件排序合并到一个文件中 |
-cat | 在终端显示文件内容 |
-text | 在终端显示文件内容 |
-copyToLocal [-ignoreCrc] | 复制到本地 |
-movetoLocal | 移动到本地 |
-mkdir
| 创建文件夹 |
-touchz
| 创建一个空的文件 |
部分命令的具体使用方法:
1.mkdir 创建目录
使用方法:hadoop fs -mkdir path
接收路径指定的URI作为参数,创建这些目录。其行为类似于UNIX中的mkdir命令
第一种方式
- hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
第二种方式
- hadoop fs -mkdir hdfs://host1:port1/user/hadoop/dir hdfs://host2:port2/user/hadoop/dir
使用方法:hadoop fs -put localsrc ··· dst
从本地文件系统中复制单个或多个源路径到目标文件系统,也支持从标准输入中读取输入写入到目标文件系统,成功返回0,失败返回-1
复制单个文件
- hadoop fs -put localfile /user/hadoop/hadoopfile
复制多个文件
- hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
3.ls 列出文件
使用方法:hadoop fs -ls args
递归版本:hadoop fs -lsr args
#文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID
#如果是目录,则返回子文件的一个列表, 就像UNIX中一样。格式如下:
#目录名 dir 修改日期 修改时间 权限 用户ID 组ID
示例:
列出HDFS目录下名为‘input’的文件 返回值:成功返回0 失败返回-1
- hadoop fs -ls input
递归列出output下的子目录中的文件及目录信息
- hadoop fs -ls output
列出HDFS下的文件
- hadoop fs -ls
#注意:在HDFS中未带参数的“ls”命令没有返回值,它默认返回HDFS的“home”目录下的内容。在HDFS中,没有当前目录./这样的概念,也没有cd这个命令。
使用方法:hadoop fs -cat URI [URI···]
- hadoop fs -cat input/*
使用方法:hadoop fs -get [-ignorecrc] [crc] src localsrc
-ignorecrc选项复制CRC1校验失败的文件,使用-crc选项复制文件以及CRC信息。
- hadoop fs -get ini IN1
- hadoop fs -get /user/hadoop/file localfile
- hadoop fs -get hdfs://host:port/user/hadoop/file localfile
成功返回0.失败返回-1
使用方法:hadoop fs rm URI [URI···]
删除指定非空目录dir
- hadoop fs -rm /user/hadoop/dir
- hadoop fs -rm /user/hadoop/file
- hadoop fs -rmr /user/hadoop/file
7.chgrp 改变文件所属的组
使用方法:hadoop fs -chgrp [-R] GROUP URI [URI···]
hadoop fs -chmod [-R] <MODE[,MODE]···|OCTALMODE> URI [URI···]
9.copyFromLocal 复制本地文件到hdfs,与put命令类似
使用方法:hadoop fs -copyFromLocal URI
10.copyToLocal 复制hdfs文件到本地,与get命令类似
使用方法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI
11.cp 复制文件
使用方法:hadoop fs -cp URI [URI···]
将文件从源路径复制到目标路径。允许有多个源路径,但此时目标路径必须是一个目录
- hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
- hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
返回值:成功返回0,失败返回-1
使用方法:hadoop fs -du URI [URI···]
显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小
- hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1
- hdfs://host:port/user/hadoop/dir1
13.expunge 清空回收站
使用方法:hadoop fs -expunge
14.getmerge
使用方法:hadoop fs -getmerge [addnl]
将源目录中的所有文件排序合并到一个本地文件中。addnl是可选的,用于指定在每个文件结尾添加一个换行符
15.mv 移动文件
使用方法:hadoop fs -mv URI [URI···]
将文件从源路径移动到目标路径。这个命令允许有多个源路径,但此时目标路径必须是一个目录,。不允许在不同的文件系统移动文件
- hadoop fs -mv /user/hadoop/file1 /user/hadoop/dir
使用方法:hadoop fs -setrep [-R] path
- hadoop fs -setrep -w 3 -R /user/hadoop/dir
17.stat 返回指定路径的统计信息
使用方法:hadoop fs -stat path
使用方法:hadoop fs -tail pathname
包含返回值
19.test 检查文件或目录
使用方法:hadoop fs -test -[ezd] URI
选项说明:
-e:检查文件是否存在。存在返回0
-z:检查文件容量是否为0。是返回0
-d:检查目录是否存在。是返回1,否则返回0
- hadoop fs -e filename
使用方法:hadoop fs -text src
允许的格式为:zip和TextRecordInputStream
使用方法:hadoop fs -touchz URI [URI···]
- hadoop fs -touchz pathname
返回值:成功返回0,失败返回-1
Hadoop 系统管理命令
命令 | 功能 |
---|---|
hadoop version | 查看Hadoop版本 |
sbin/start-all.sh | 启动Hadoop所有进程 |
sbin/stop-all.sh | 停止Hadoop所有进程 |
bin/hadoop namenode -format | 格式化一个新的分布式文件系统 |
sbin/start-dfs.sh | 在分配的Namenode上,启动HDFS |
sbin/stop-dfs.sh | 在分配的Namenode上,停止HDFS |
sbin/start-yarn.sh | 启动yarn |
sbin/stop-yarn.sh | 停止yarn |
Hadoop常用端口号
端口名称 | Hadoop2.X | Hadoop3.X |
---|---|---|
NameNode 内部通信端口 | 8020 / 9000 | 8020 / 9000/9820 |
NameNode HTTP UI | 50070 | 9870 |
MapReduce 查看执行任务端口 | 8088 | 8088 |
历史服务器通信端口 | 19888 | 19888 |
Web 端查看 HDFS 的 NameNode
(a)浏览器中输入:http://hadoop102:9870
(b)查看 HDFS 上存储的数据信息
Web 端查看 YARN 的 ResourceManager
(a)浏览器中输入:http://hadoop103:8088
(b)查看 YARN 上运行的 Job 信息
Web 端查看 JobHistory
(a)浏览器中输入:
http://hadoop102:19888/jobhistory
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。