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不支持文件随机修改,仅支持追加写入,这也是大数据场景数据增量更新的核心方式。

相关推荐
传奇开心果编程1 小时前
【Xilem基础语法学与练】第8课:条件渲染(one_of)
学习·rust·前端框架
小雪崩1 小时前
嵌入式学习 day44:51单片机入门
嵌入式硬件·学习·51单片机
happyness441 小时前
AI时代的软件工程:软件开发正在进入一个全新的时代
大数据·ai编程
2401_865382502 小时前
政务信息化项目审价的现实意义
大数据·人工智能·政务
lvts_cs2 小时前
汽车零部件产业发展趋势,对地方招商工作带来的影响
大数据·人工智能·汽车
浔溺2 小时前
al+大数据每日学习笔记35
大数据·笔记·学习
abcyuu2 小时前
福州中小企业业财一体化系统权限管理与数据安全实践方案
大数据·网络·数据库
小白说大模型2 小时前
去AI味提示词大全:25个实用Prompt帮你降低AI率
大数据·人工智能·pytorch·深度学习·机器学习·prompt
kyrie_sakura2 小时前
MySQL学习笔记4 -- select的7大子句,子查询
笔记·学习·mysql