跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
HDFS命令行操作
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= HDFS命令行操作 = HDFS(Hadoop Distributed File System)是Hadoop的核心组件之一,用于存储和管理大规模数据集。HDFS提供了命令行接口(CLI),允许用户通过简单的命令与分布式文件系统交互。本节将详细介绍HDFS的常用命令行操作,适合初学者和需要快速掌握HDFS操作的程序员。 == 简介 == HDFS命令行操作通过`hadoop fs`或`hdfs dfs`命令执行(两者功能相同)。这些命令类似于Linux文件系统命令(如`ls`、`mkdir`、`cp`等),但专门针对HDFS设计。用户可以通过这些命令上传、下载、管理文件,以及监控HDFS状态。 == 基本命令 == 以下是一些最常用的HDFS命令及其用法。 === 列出目录内容 === 使用`-ls`命令查看HDFS中的文件和目录: <syntaxhighlight lang="bash"> hdfs dfs -ls /user/hadoop </syntaxhighlight> 输出示例: <pre> Found 3 items drwxr-xr-x - hadoop supergroup 0 2023-10-01 10:15 /user/hadoop/data -rw-r--r-- 1 hadoop supergroup 1024 2023-10-01 10:20 /user/hadoop/example.txt drwxr-xr-x - hadoop supergroup 0 2023-10-01 10:25 /user/hadoop/output </pre> 解释: * `drwxr-xr-x` 表示目录权限。 * `-rw-r--r--` 表示文件权限。 * 第三列是所有者(`hadoop`)和所属组(`supergroup`)。 === 创建目录 === 使用`-mkdir`命令在HDFS中创建目录: <syntaxhighlight lang="bash"> hdfs dfs -mkdir /user/hadoop/newdir </syntaxhighlight> 若父目录不存在,可添加`-p`参数递归创建: <syntaxhighlight lang="bash"> hdfs dfs -mkdir -p /user/hadoop/parent/child </syntaxhighlight> === 上传文件到HDFS === 使用`-put`或`-copyFromLocal`命令将本地文件上传到HDFS: <syntaxhighlight lang="bash"> hdfs dfs -put localfile.txt /user/hadoop/data/ </syntaxhighlight> 或: <syntaxhighlight lang="bash"> hdfs dfs -copyFromLocal localfile.txt /user/hadoop/data/ </syntaxhighlight> === 下载文件到本地 === 使用`-get`或`-copyToLocal`命令从HDFS下载文件: <syntaxhighlight lang="bash"> hdfs dfs -get /user/hadoop/data/example.txt ./localdir/ </syntaxhighlight> 或: <syntaxhighlight lang="bash"> hdfs dfs -copyToLocal /user/hadoop/data/example.txt ./localdir/ </syntaxhighlight> === 查看文件内容 === 使用`-cat`命令查看HDFS中的文件内容: <syntaxhighlight lang="bash"> hdfs dfs -cat /user/hadoop/data/example.txt </syntaxhighlight> 输出示例: <pre> Hello, HDFS! This is an example file. </pre> === 删除文件或目录 === 使用`-rm`命令删除文件: <syntaxhighlight lang="bash"> hdfs dfs -rm /user/hadoop/data/oldfile.txt </syntaxhighlight> 使用`-rm -r`递归删除目录: <syntaxhighlight lang="bash"> hdfs dfs -rm -r /user/hadoop/olddir </syntaxhighlight> == 高级命令 == 以下是一些更高级的HDFS命令。 === 检查文件大小 === 使用`-du`命令查看文件或目录的大小(以字节为单位): <syntaxhighlight lang="bash"> hdfs dfs -du -h /user/hadoop/data </syntaxhighlight> 输出示例: <pre> 1.5 K /user/hadoop/data/example.txt 3.2 M /user/hadoop/data/largefile.csv </pre> * `-h`参数以人类可读格式(KB、MB等)显示大小。 === 移动或重命名文件 === 使用`-mv`命令移动或重命名HDFS中的文件: <syntaxhighlight lang="bash"> hdfs dfs -mv /user/hadoop/data/oldname.txt /user/hadoop/data/newname.txt </syntaxhighlight> === 设置文件权限 === 使用`-chmod`命令修改文件权限: <syntaxhighlight lang="bash"> hdfs dfs -chmod 755 /user/hadoop/data/example.txt </syntaxhighlight> 使用`-chown`命令修改文件所有者: <syntaxhighlight lang="bash"> hdfs dfs -chown newuser:newgroup /user/hadoop/data/example.txt </syntaxhighlight> === 检查HDFS空间使用情况 === 使用`-df`命令查看HDFS的磁盘空间使用情况: <syntaxhighlight lang="bash"> hdfs dfs -df -h </syntaxhighlight> 输出示例: <pre> Filesystem Size Used Available Use% hdfs://namenode:8020 100.0 G 25.3 G 74.7 G 25% </pre> == 实际案例 == 以下是一个真实场景中的HDFS命令行操作示例。 === 场景:批量上传日志文件并分析 === 1. 创建HDFS目录存放日志文件: <syntaxhighlight lang="bash"> hdfs dfs -mkdir -p /user/hadoop/logs/2023-10-01 </syntaxhighlight> 2. 上传本地日志文件到HDFS: <syntaxhighlight lang="bash"> hdfs dfs -put /var/log/app/*.log /user/hadoop/logs/2023-10-01/ </syntaxhighlight> 3. 检查上传的文件: <syntaxhighlight lang="bash"> hdfs dfs -ls -h /user/hadoop/logs/2023-10-01 </syntaxhighlight> 4. 运行MapReduce作业分析日志(假设已编写作业): <syntaxhighlight lang="bash"> hadoop jar loganalyzer.jar /user/hadoop/logs/2023-10-01 /user/hadoop/output </syntaxhighlight> == 总结 == HDFS命令行操作是与Hadoop交互的基础工具。通过`hdfs dfs`或`hadoop fs`命令,用户可以轻松管理分布式文件系统中的数据和目录。本文涵盖了从基本操作(如`ls`、`mkdir`)到高级功能(如权限管理、空间监控)的全面指南,适合不同水平的用户学习和参考。 [[Category:大数据框架]] [[Category:Apache Hadoop]] [[Category:HDFS文件系统]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)