1 准备知识
HDFS:hadoop集群分布式文件系统,用来存储海量数据。HDFS采用分而治之的设计思想,将文件切分为文件块进行存储,存储数据的节点为datanode,存储这些数据具体存放位置的节点为namenode。HDFS的架构为一主多从,即namenode为主,datanade为从。本文主要介绍HDFS的shell命令,即如何通过命令行对HDFS进行操作。
首先附上官网链接,HDFS Commands Guide。
介绍HDFS之前,需要了解一下命令行的格式,找个例子讲一下。
hadoop fs [generic options]
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-getfattr [-R] {-n name | -d} [-e en] <path>]
命令行中符号的含义如下表:
参考上述,可写如下命令:
hadoop fs -appendToFile <localsrc> ...<dst>
或者
hadoop fs -getfattr -d <path>
2 shell命令
查看hdfs命令的方式,直接在hadoop集群上输入hdfs,会输出usage(用法)。
hdfs的命令分为三种,分别是admin command(管理员)、client commands(客户端)和 Daemon Command(进程)
2.1 admin command
管理员命令主要介绍 dfsadmin和fsck
输入 hdfs dfsadmin 查看usage
- hdfs dfsadmin -report #报告集群状态
- hdfs dfsadmin -safemode #设置集群的安全模式,当集群出现问题时,可设置安全模式。enter :进入安全模式,安全模式状态下,不可以向hdfs上传输文件;leave:离开;get:获取当前状态;wait:等待。
- hdfs dfsadmin -allowSnapShot #启用快照功能,快照功能开启,就可以对文件进行备份了。
输入hdfs fsck 查看fsck的usage:
- hdfs fsck / #查看hdfs文件系统信息
2.2 client commands
客户端命令介绍dfs、getconf和version
输入 hdfs dfs 查看dfs的usage
每个具体子命令的含义如下表
输入 hdfs getconf 查看getconf的usage
- hdfs getconf -namenodes #查看namenode的节点名称
hdfs getconf -nnRpcAddresses #查看namenode的RPC地址
输入hdfs version查看hsdf的版本信息
2.3 Daemon Command
hdfs balancer # 启动datanode的均衡分布
hdfs datanode #查看datanode进程
hdfs namenode #查看namenode进程
namenode后也可跟参数,具体如下
hdfs nameNode
[-format] //格式化NameNode
[-upgrade] //在Hadoop升级后,应该使用这个命令启动NameNode
[-rollback] //使用NameNode回滚前一个版本
[-finalize] //删除文件系统的前一个状态,这会导致系统不能回滚到前一个zhua
[-importCheckpoint] // 复制备份checkpoint的状态到当前checkpoint
至此,hdfs的shell命令算是简单的过了一遍,有兴趣的可以每个命令具体去实操一下。
文章持续更新,可以微信搜索「 大数据分析师知识分享」第一时间阅读,回复【666】获取大数据相关资料。