vlambda博客
学习文章列表

30个常用HDFS命令总结





本文总计 2000 字,预计阅读需要 10 分钟


HDFS 是 Hadoop 生态系统的主要组成部分,这里整理了一些最常用的 HDFS 命令。

对于初学者很可能会很困惑因为hadoop操作hdfs的命令有好几个版本,比如

hadoop fs、hadoop dfs 和 hdfs dfs,这三个命令有什么区别呢?hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作)。

官方文档解释如下:

The HDFS shell is invoked by bin/hadoop dfs. All the HDFS shell commands take path URIs as arguments. The URI format is scheme://autority/path. For HDFS the scheme is hdfs, and for the local filesystem the scheme is file.

而hadoop fs 可以适应更多的系统,比如亚马逊的S3,阿里云的OSS等

The FileSystem (FS) shell is invoked by bin/hadoop fs. All the FS shell commands take path URIs as arguments. The URI format is scheme://autority/path. For HDFS the scheme is hdfs, and for the local filesystem the scheme is file. The scheme and authority are optional. If not specified, the default scheme specified in the configuration is used. An HDFS file or directory such as /parent/child can be specified as hdfs://namenodehost/parent/child or simply as /parent/child (given that your configuration is set to point to hdfs://namenodehost). Most of the commands in FS shell behave like corresponding Unix commands.?

我们看看代码:

elif [ "$COMMAND" = "datanode" ] ; then  
CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode'  
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DATANODE_OPTS"  
elif [ "$COMMAND" = "fs" ] ; then  
CLASS=org.apache.hadoop.fs.FsShell  
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"  
elif [ "$COMMAND" = "dfs" ] ; then  
CLASS=org.apache.hadoop.fs.FsShell  
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"  
elif [ "$COMMAND" = "dfsadmin" ] ; then  
CLASS=org.apache.hadoop.hdfs.tools.DFSAdmin  
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"

其实都是调用的org.apache.hadoop.fs.FsShell这个类,使用那个都是可以的,我们把它当作是一个为了兼容老代码的历史遗留的问题就可以了,为了统一起见,本文中使用hadoop fs 命令为基准,进行介绍。

version——显示 Hadoop 的版本,以及附加的本地文件系统位置和编译信息。

30个常用HDFS命令总结

mkdir — 如果新目录不存在,此命令用于创建新目录。如果目录存在,则会给出“文件已存在”错误。

30个常用HDFS命令总结

ls — 检查 HDFS 中的文件或目录。它显示指定目录中每个文件或目录的名称、权限、所有者、大小和修改日期。

30个常用HDFS命令总结

put — 将数据从本地文件系统复制到 HDFS。

30个常用HDFS命令总结

我们可以从 HDFS WebUI 中进行验证。

30个常用HDFS命令总结

get — 将数据从 HDFS 复制到本地文件系统。该命令与“put”命令相反。

30个常用HDFS命令总结

cat — 查看 HDFS 中文件内容

30个常用HDFS命令总结

mv — 将文件从一个位置移动到 HDFS 到 HDFS 中的另一个位置。

30个常用HDFS命令总结

cp — 将文件从一个位置复制到 HDFS 到 HDFS 内的另一个位置。

30个常用HDFS命令总结

copyFromLocal — 将数据从本地文件系统复制到 HDFS。

30个常用HDFS命令总结

copyToLocal — 将数据从 HDFS 复制到本地文件系统。

30个常用HDFS命令总结

moveFromLocal 、moveFromLocal 与上面的命令类似,就不详细说明了

rm — 从 HDFS 中删除/删除文件。

30个常用HDFS命令总结

tail — 从 HDFS 读取文件的尾部/结尾部分。它有一个附加参数“[-f]”,用于显示附加到文件的数据。

30个常用HDFS命令总结

expunge — 清空垃圾箱。

30个常用HDFS命令总结

chown — 更改 HDFS 中文件或目录的用户。

30个常用HDFS命令总结

chgrp — 更改 HDFS 中文件或目录的组。

30个常用HDFS命令总结

setrep——改变HDFS中文件的复制因子。

30个常用HDFS命令总结

这个命令比较重要,输入完成后我们使用Web UI查看一下结果:

30个常用HDFS命令总结

du——检查文件或目录的磁盘使用量。

30个常用HDFS命令总结

df——显示HDFS文件系统的容量、可用空间和大小。它有一个附加参数“[-h]”,可以将数据转换为人类可读的格式。

30个常用HDFS命令总结

fsck — 检查 HDFS 文件系统中的文件的健康状况。

30个常用HDFS命令总结

这个命令还有一些选项

30个常用HDFS命令总结

touchz——在指定的目录中创建一个大小为 0 的新文件。

30个常用HDFS命令总结

test——测试<HDFS path>的各种问题,结果通过退出状态进行返回。

30个常用HDFS命令总结

text — 在控制台上打印 HDFS 文件的数据。

30个常用HDFS命令总结

stat——提供HDFS中文件或目录的状态。

30个常用HDFS命令总结

它可以提供以下格式的数据。默认情况下,它使用“%y”。

30个常用HDFS命令总结

useage——显示给定命令的用法,如果没有指定,则显示所有命令。

30个常用HDFS命令总结

help — 显示给定命令或所有命令的帮助(如果未指定)。

30个常用HDFS命令总结

chmod — 更改文件在 HDFS 文件系统中的权限。

30个常用HDFS命令总结

appendToFile — 将本地文件系统中的两个文件合并为 HDFS 文件中的一个文件。

30个常用HDFS命令总结

checksum — 检查 HDFS 文件系统中文件

30个常用HDFS命令总结

count — 计算特定路径的文件、目录和大小的数量。

30个常用HDFS命令总结

还可以根据需要修改一些参数获得不同的结果

30个常用HDFS命令总结

find——查找HDFS文件系统中的文件。

30个常用HDFS命令总结

getmerge — 将目录的内容从 HDFS 合并到本地文件系统中的文件。

30个常用HDFS命令总结

总结

上面总结了最常见和最常用的 HDFS 命令,希望对你有所帮助

喜欢就关注一下吧:



点个在看你最好看