乐趣区

关于hadoop:一文带你了解HDFS的shell命令

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】获取大数据相干材料。

退出移动版