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

相关推荐
tiankongdeyige4 小时前
游戏战斗系统学习第2篇:有限状态机 (FSM)
学习·游戏·typescript
Qyr996 小时前
2026-2032直接芯片液冷板市场爆发式增长:AI算力浪潮下的热管理核心赛道
大数据·人工智能
蓝色的风-20266 小时前
国产算力双雄对决:曙光8000十万卡集群 vs 华为昇腾950超节点深度解析
大数据·人工智能·自然语言处理
an12321217 小时前
ARM嵌入式学习笔记:SPI通信协议详解
arm开发·笔记·学习
泛联新安7 小时前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
杨云龙UP7 小时前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库
by209998 小时前
从结构体到对象:正式学习C++类的骨架、封装与this指针
c++·经验分享·学习
乌暮8 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习
SelectDB技术团队8 小时前
一条日志两套引擎的账:把 Elasticsearch 检索与分析合并到同一份数据的落地写法
大数据·数据库·elasticsearch·搜索引擎·全文检索·日志·apache doris
大大大大晴天8 小时前
每天认识一个组件:远端数据服务Apache Celeborn
大数据