al+大数据每日学习笔记36

2026年9月9日

HDFS Shell 命令总结

一、前言

掌握HDFS底层原理后,Shell命令是日常运维、开发测试最常用的操作方式。HDFS Shell支持文件上传、下载、权限修改、副本配置、文件统计、目录管理等全场景操作,语法简洁、贴近Linux命令,上手难度极低。

二、基础语法说明

HDFS 提供两套等效命令,日常使用可随意替换,生产中更推荐 hdfs dfs:

hadoop fs 具体命令 = hdfs dfs 具体命令

通用帮助命令:可查看所有命令参数用法

hadoop fs -help rm

三、环境前置准备

执行所有命令前,需启动Hadoop集群,保证服务正常运行:

复制代码
# 启动HDFS集群
sbin/start-dfs.sh
# 启动YARN集群
sbin/start-yarn.sh

四、文件上传操作(本地 → HDFS)

1、-moveFromLocal 本地剪切上传

将本地文件剪切至HDFS,上传后本地文件消失

复制代码
# 创建本地测试文件
vim xiaobaic.txt
# 文件内容:xiaobaic
# 剪切上传至HDFS /bigdata目录
hadoop fs -moveFromLocal xiaobaic.txt /bigdata

2、-copyFromLocal 本地复制上传

复制本地文件至HDFS,本地文件保留

复制代码
vim xiaobaij.txt
# 文件内容:xiaobaij
hadoop fs -copyFromLocal xiaobaij.txt /bigdata

3、-put 通用上传(生产首选)

功能等同于copyFromLocal,语法更通用,生产环境高频使用

复制代码
vim xiaobaiw.txt
# 文件内容:xiaobaiw
hadoop fs -put xiaobaiw.txt /bigdata

4、-appendToFile 文件追加

向HDFS已有文件末尾追加内容,不覆盖原数据

复制代码
vim xiaobaicjw.txt
# 文件内容:xiaobaicjw
hadoop fs -appendToFile xiaobaicjw.txt /bigdata/xiaobaic.txt

五、文件下载操作(HDFS → 本地)

1、-copyToLocal HDFS复制到本地

复制代码
hadoop fs -copyToLocal /bigdata/xiaobaic.txt /opt/module/hadoop-3.1.3/

2、-get 通用下载

功能等同于copyToLocal,支持重命名下载,使用更灵活

复制代码
hadoop fs -get /bigdata/xiaobaic.txt /opt/module/hadoop-3.1.3/xiaobaic2.txt

六、HDFS 内部常用操作命令

复制代码
# 1、ls 查看目录文件信息
hadoop fs -ls /bigdata/

# 2、cat 查看文件完整内容
hadoop fs -cat /bigdata/xiaobaic.txt

# 3、chmod 修改文件权限(用法同Linux)
hadoop fs -chmod 666 /bigdata/xiaobaic.txt

# 4、mkdir 创建目录
hadoop fs -mkdir /student

# 5、cp HDFS内部文件复制
hadoop fs -cp /bigdata/xiaobaic.txt /student

# 6、mv HDFS内部文件移动/重命名
hadoop fs -mv /bigdata/xiaobaij.txt /student

# 7、tail 查看文件末尾1KB数据(适配日志查看)
hadoop fs -tail /bigdata/xiaobaic.txt

# 8、rm 删除单个文件
hadoop fs -rm /bigdata/xiaobaic.txt

# 9、rm -r 递归删除目录及所有内容
hadoop fs -rm -r /bigdata

七、高阶运维命令

1、-du 统计文件/目录大小

-s:汇总统计;-h:人性化单位显示

复制代码
# 汇总查看目录总大小
hadoop fs -du -s -h /student
# 明细查看目录下文件大小
hadoop fs -du -h /student

参数解析:输出第一列是文件原始大小,第二列是所有副本总占用空间(默认3副本,即为原始大小×3)。

2、-setrep 修改文件副本数

复制代码
hadoop fs -setrep 10 /student/xiaobaic.txt

重点避坑:该命令仅修改NameNode元数据中的副本记录,实际副本数量由集群DataNode节点数决定。若集群仅有3个DN节点,最多仅能生成3个副本,节点扩容后才会自动补齐副本。

八、实操核心总结与底层原理

1、日常开发上传优先用 put 、下载优先用 get,是生产通用规范;

2、剪切命令 moveFromLocal 会删除本地源文件,操作前需确认数据是否需要保留;

3、权限、目录创建、副本修改等操作仅与NameNode交互,属于元数据操作,无数据传输;

4、文件上传下载底层完全遵循HDFS读写流程,先请求NameNode获取节点信息,再与DataNode完成数据传输;

5、HDFS不支持文件随机修改,仅支持追加写入,这也是大数据场景数据增量更新的核心方式。

相关推荐
张张123y2 小时前
后端第十四课:Agent 记忆系统(让 Agent 记住上下文和用户,跨会话不健忘)
java·大数据·人工智能·python·agent·记忆
dadaobusi7 小时前
学习: PCIe 6.0 的 L0p
学习
找方案7 小时前
从用户画像到智能定价:81页方案拆解“大数据决策与支撑平台”怎么落地
大数据·人工智能·数据分析·智慧城市·用户画像
liliangcsdn8 小时前
DeepSeek DeepInfer开源项目的功能分析和探索
大数据·人工智能
燕落南枝8 小时前
CSS 学习:类型选择器与 AI 注释实战
css·人工智能·学习
xiaogai_gai9 小时前
钉钉月结报销到金蝶付款单同步方案实战教程
大数据·数据库·钉钉
Elastic 中国社区官方博客10 小时前
Elasticsearch:安装自行管理的 Elastic Stack 集群
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
商业看点解说11 小时前
支持私有化部署的 AI 助手有哪些?把“私有化“拆成四层,排除一类常被错放的产品
大数据·人工智能
清华kenny11 小时前
安徽晓得养HIS系统适合哪类健康机构升级使用
大数据·人工智能·安徽晓得养