HDFS的命令行操作
1、namenode –format:格式化DFS 文件系统
2、secondaryNameNode: 运行DFS的 SecondaryNameNode 进程
hadoop secondarynamenode
[-checkpoint [force]]
//当 EditLog超过规定大小( 默认64MB)时,启动检查 secondarynamenode的checkpoint 过程;如果启用 force选项,则强制执行checkpoint过程。
[-geteditsize] //在终端上显示EditLog 文件的大小
3、namenode:运行 DFS的namenode 进程
hadoop namenode
[-format] //格式化namenode
[-update] //在Hadoop 升级后,应该使用这个命令启动 namenode
[-rollback] //使用namenode 回滚前一个版本
[-finalize] //删除文件系统的前一个状态,这会导致系统不能回滚到前一个状态
[-importCheckpoint] //复制和备份checkpoint 的状态到当前 checkpoint
4、 datanode:运行 DFS的datanode 进程。你可以使用如下命令将 Hadoop回滚到前一个版本。它的用法如下:
hadoop datanode [-rollback]
5、 dfsadmin:运行 DFS的管理客户端。在dfsadmin命令中可以执行一些类似 Windows中高级用户才能执行的命令,比如升级和回滚等。
hadoop dfsadmin [GENERIC_OPTIONS]
[-report] //在终端上显示文件系统的基本信息
[-safemote enter | leave | get | wait ] //Hadoop 的安全模式及相关维护;在安全模式中系统是只读的,数据块也不可以删除或复制
[-refreshNodes][-finalizeUpgrade] //重新读取hosts 和exclude文件,将新的被允许加入到集群中的datanode连入,同时断开与那些从集群出去的 datanode的连接
[-upgradeProgress status | details | force] //获得当前系统的升级状态和细节,或者强迫进行升级过程
[-metasave filename] //将namenode 的主要数据结构保存到指定目录下
[-setQuota <quota><dirname>…<dirname>] // 为每个目录设定配额
[-clrQuota <dirname>…<dirname>] // 清除这些目录的配额
[-setSpaceQuota <quota><dirname>…<dirname>] // 为每个目录设置配额空间
[-clrSpaceQuota <dirname>…<dirname>] // 清除这些目录的配额空间
[-help [cmd]] //显示命令的帮助信息
6、mradmin:运行 MapReduce的管理客户端
7、fsck:运行 HDFS的检测进程。fsck 在HDFS中被用来检查系统中的不一致情况,比如某文件只有目录,但数据块已经丢失或副本数目不足。与 Linux不同,这个命令只用于检测,不能进行修复。
hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite ] [-files [-blocks [-locations | -racks ]]]
//<path> 检查的起始目录
//-move 移动受损文件到 /lost+found
//-delete 删除受损文件
//-openforwrite 在终端上显示为写打开的文件
//-files 在终端上显示正被检查的文件
//-blocks 在终端上显示块信息
//-location 在终端上显示每个块的位置
//-rack 显示 datanode的网络拓扑结构图
8、balancer:运行一个文件系统平衡进程。很多原因都会造成数据在集群内分布不均衡,一般来说,当集群中添加新的 datanode时,可以使用这个命令来进行负载均衡。其用法如下:
hadoop balancer
9、jobtracker:运行一个 jobtracker进程
10、pipes:运行一个 Pipes任务
11、tasktracker:运行一个 tasktracker进程
12、job:管理运行中的 MapReduce任务
13、queue:获得运行中的 MapReduce队列的信息
14、version:打印版本号
15、jar<jar>:运行一个 jar文件
16、daemonlog:读取 /设置守护进程的日志记录级别
17、distcp: distcp命令用于DistCp( 即Dist分布式, C盘拷贝) 分布式拷贝。用于在集群内部及集群之间拷贝数据。
18、archives: archives命令是Hadoop 定义的档案格式。 archives对应一个文件系统,它的扩展名是 .har,包含元数据和数据文件。
19、fs: fs可以说是HDFS 最常用的命令,这是一个高度类似 Linux文件系统的命令集。你可以使用这些命令查看HDFS上的目录结构文件、上传和下载文件、创建文件夹、复制文件等。
hadoop fs [genericOptions]
[-ls <path>] //显示目标路径中当前目录下的所有文件
[-lsr <path>] //递归显示目标路径下的所有目录及文件 (深度优先)
[-du <path>] //以字节为单位显示目录中所有文件的大小,或该文件的大小 (如果目标为文件)
[-dus <path>] //以字节为单位显示目标文件大小 (用于查看文件夹大小)
[-count[-q] <path>] //将目录的大小、包含文件 (包括文件) 个数的信息输出到屏幕 (标准stdout)
[-mv <src> <dst>] //把文件或目录移动到目标路径,这个命令允许同时移动多个文件,但是只允许移动到一个目标路径中,参数中的最后一个文件夹即为目标路径
[-cp <src> <dst>] //复制文件或目录到目标路径,这个命令允许同时复制多个文件,如果复制多个文件,目标路径必须是文件夹
[-rm [-skipTrash] <path>] //删除文件,这个命令不能删除文件夹
[-rmr [-skipTrash] <path>] //删除文件夹及其下的所有文件
[-expunge]
[-put <localsrc> ... <dst>] //从本地文件系统上传文件到 HDFS中
[-copyFromLocal <localsrc> ... <dst>] //与put 相同,在 0.18版中,只允许上传一个文件,但是在 0.20中,这两个命令已经完全一样了
[-moveFromLocal <localsrc> ... <dst>] //与put 相同,但是文件上传之后会从本地文件系统中移除
[-get [-ignoreCrc] [-crc] <src> <localdst>] //复制文件到本地文件系统。这个命令可以选择是否忽视校验和,忽视校验和下载主要用于挽救那些已经发生错误的文件
[-getmerge <src> <localdst> [addnl]] //对源目录中的所有文件进行排序并写入目标文件中,文件之间以换行符分隔
[-cat <src>] //在终端显示( 标准输出 stdout)文件中的内容,类似Linux系统中的 cat
[-text <src>]
[-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>] //与get 相同
[-moveToLocal [-crc] <src> <localdst>] //这个命令在0.20 版本中没有完成
[-mkdir <path>] //创建文件夹
[-setrep [-R] [-w] <rep> <path/file>] //改变一个文件的副本个数。参数 -R可以递归地对该目录下的所有文件执行统一操作
[-touchz <path>] //类似Linux 中的touch,创建一个空文件
[-test -[ezd] <path>] //将源文件输出为文本格式并显示到终端上,通过这个命令可以查看TextRecordInputStream(SequenceFile等) 或zip文件
[-stat [format] <path>] //以指定格式返回路径的信息
[-tail [-f] <file>] //在终端上显示( 标注输出 stdout)文件的最后1kb 内容。-f选项的行为与 Linux中一致,会持续检测新添加到文件中的内容,这在查看日志文件时会显得非常方便
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] //改变文件的权限,只有文件的所有者或是超级用户才能使用这个命令。 -R可以递归地改变文件夹内所有文件的权限
[-chown [-R] [OWNER][:[GROUP]] PATH...] //改变文件的拥有者,-R可以递归地改变文件夹内所有文件的拥有者。同样,这个命令只有超级用户才能使用
[-chgrp [-R] GROUP PATH...] //改变文件所属的组,-R可以递归地改变文件夹内所有文件所属的组,这个命令只有超级用户才能使用
[-help [cmd]] //这是命令的帮助信息