共计 2642 个字符,预计需要花费 7 分钟才能阅读完成。
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>]
命令行中符号的含意如下表:
[] | 可选内容 | |
---|---|---|
<> | 必选内容 | |
{} | 分组 | |
\ | 二选一 | |
… | 同一个内容可屡次呈现 | |
– | 前面连贯单个字符,可多个组合应用 | |
— | 前面跟残缺的单词 | |
Localsrc | 本地源文件 | |
dst | 指标门路 |
参考上述,可写如下命令:
hadoop fs -appendToFile <localsrc> ...<dst>
或者
hadoop fs -getfattr -d <path>
2 shell 命令
查看 hdfs 命令的形式,间接在 hadoop 集群上输出 hdfs,会输入 usage(用法)。
hdfs 的命令分为三种,别离是 admin command(管理员)、client commands(客户端)和 Daemon Command(过程)
管理员命令 | 客户端命令 | 过程命令 |
---|---|---|
cacheadmin | classpath | balancer |
crypto | dfs | datanode |
debug | envvars | dfsrouter |
dfsadmin | fetchdt | diskbalancer |
dfsrouteradmin | getconf | httpfs |
ec | groups | journalnode |
fsck | lsSnapshottableDir | mover |
haadmin | snapshotDiff | namenode |
jmxget | version | nfs3 |
oev | portmap | |
oiv | secondarynamenode | |
oiv_legacy | spser | |
storagepolicies | zkfc |
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
每个具体子命令的含意如下表
appendToFile | 追加一个或者多个文件到 hdfs 指定文件中 |
---|---|
cat | 显示文件内容到规范输入上 |
checksum | 校验和 |
chgrp | 批改所属组 |
chmod | hdfs 上文件用户名和用户组 |
chown | hdfs 上文件权限批改 |
copyFromLocal | 从本地复制文件到 hdfs 文件系统 |
copyToLocal | 复制 hdfs 文件系统中的文件到本地 |
count | 统计与指定文件模式匹配的门路下的目录,文件和字节数 |
cp | 将文件或目录复制到指标门路下 |
createSnapshot | 创立快照 |
deleteSnapshot | 删除快照 |
df | 查看可用空间 |
du | 显示给定目录中蕴含的文件和目录的大小或文件的长度,用字节大小示意。 |
expunge | 清空回收站 |
find | 查找 |
get | 将本地文件从 HDFS 下载到本地 |
getfacl | 显示权限信息 |
getfattr | 显示其余信息 |
getmerge | 将源目录和指标文件作为输出,并将 src 中的文件连贯到指标本地文件 |
head | 输入文件结尾 10 行 |
help | 帮忙信息 |
ls | 查看目录下内容 |
mkdir | 创立目录 |
moveFromLocal | 从本地挪动到 hdfs |
moveToLocal | 挪动到本地 |
mv | 将文件或目录从 HDFS 的源门路挪动到指标门路 |
put | 将本地文件上传到 HDFS |
renameSnapshot | 重命名快照 |
rm | 删除一个文件或目录 |
rmdir | 删除空目录 |
setfacl | 设置权限 |
setfattr | 其余信息 |
setrep | 批改正本数 |
stat | 显示文件所占块数 (%b) |
tail | 显示文件的最初 1kb 内容到规范输入 |
test | 某个文件或者目录是否存在 |
text | 获取源文件并以文本格式输入文件 |
touch | 创立一个零长度的文件 |
touchz | 目录创立一个新文件 |
truncate | 截断 |
usage | 返回命令的 help 信息。 |
输出 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】获取大数据相干材料。