首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop HDFS-常用运维命令

Hadoop HDFS-常用运维命令

作者头像
运维小路
发布2025-07-31 14:41:39
发布2025-07-31 14:41:39
16000
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS(本章节)

1. 系统管理命令

1.1 服务状态管理

代码语言:javascript
代码运行次数:0
运行
复制
# 启动/停止 HDFS 服务
start-dfs.sh        # 启动集群
stop-dfs.sh         # 停止集群
代码语言:javascript
代码运行次数:0
运行
复制
# 单独启停组件
hadoop-daemon.sh start|stop namenode   # NameNode
hadoop-daemon.sh start|stop datanode   # DataNode
hadoop-daemon.sh start|stop journalnode # JournalNode

1.2 安全模式操作

代码语言:javascript
代码运行次数:0
运行
复制
#只读不写 
hdfs dfsadmin -safemode get      # 查看安全模式状态
hdfs dfsadmin -safemode enter    # 进入安全模式
hdfs dfsadmin -safemode leave    # 退出安全模式

2. 存储空间管理

2.1 空间监控

代码语言:javascript
代码运行次数:0
运行
复制
hdfs dfsadmin -report          # 查看集群存储报告
hdfs dfs -df -h /              # 查看文件系统空间使用
hdfs dfs -du -h /path          # 查看目录大小

2.2 配额管理

代码语言:javascript
代码运行次数:0
运行
复制
hdfs dfsadmin -setQuota 1000 /dir  # 设置目录文件数配额
hdfs dfsadmin -clrQuota /dir       # 清除配额
hdfs dfs -count -q /dir            # 查看配额使用情况

3. 数据管理命令

3.1 文件操作

代码语言:javascript
代码运行次数:0
运行
复制
hdfs dfs -ls /path            # 列出目录
hdfs dfs -mkdir -p /path      # 创建目录
hdfs dfs -put local /hdfs     # 上传文件
hdfs dfs -get /hdfs local     # 下载文件
hdfs dfs -rm -r /path         # 递归删除
hdfs dfs -cp /src /dest       # 复制文件
hdfs dfs -mv /src /dest       # 移动文件

3.2 数据平衡

代码语言:javascript
代码运行次数:0
运行
复制
#触发数据迁移的磁盘空间使用率差异阈值
hdfs balancer                 # 启动数据平衡
hdfs balancer -threshold 10   # 设置平衡阈值(10%)

4. 块管理命令

4.1 块操作

代码语言:javascript
代码运行次数:0
运行
复制
hdfs fsck / -files -blocks    # 检查块健康状况
hdfs dfsadmin -metasave filename  # 保存块元数据到文件
hdfs debug recoverLease -path /file -retries 3  # 恢复租约

4.2 副本管理

代码语言:javascript
代码运行次数:0
运行
复制
hdfs dfs -setrep -w 2 /file   # 修改副本数(同步等待)
hdfs dfsadmin -fetchImage fsimage_backup  # 备份fsimage

5. 高可用管理

5.1 NameNode HA

代码语言:javascript
代码运行次数:0
运行
复制
hdfs haadmin -getServiceState nn1   # 查看NN状态
hdfs haadmin -transitionToActive --forcemanual nn1  # 手动切换主备

5.2 JournalNode

代码语言:javascript
代码运行次数:0
运行
复制
hdfs dfs -ls journalnode://cluster1/  # 查看编辑日志

6. 安全相关命令

6.1 Kerberos 管理

代码语言:javascript
代码运行次数:0
运行
复制
klist                         # 查看票据
kinit -kt keytab user@REALM   # 使用keytab认证
hdfs dfs -Ddfs.namenode.kerberos.principal=nn/_HOST@REALM -ls /  # 指定principal

6.2 ACL 管理

代码语言:javascript
代码运行次数:0
运行
复制
#突破用户,组,其他
hdfs dfs -getfacl /path       # 查看ACL
hdfs dfs -setfacl -m user:alice:rwx /path  # 设置ACL

7. 运维监控命令

7.1 日志检查

代码语言:javascript
代码运行次数:0
运行
复制
# 查看NameNode日志
tail -f /var/log/hadoop-hdfs/hadoop-hdfs-namenode-*.log
代码语言:javascript
代码运行次数:0
运行
复制
# 查看DataNode日志
tail -f /var/log/hadoop-hdfs/hadoop-hdfs-datanode-*.log

7.2 JMX 监控

代码语言:javascript
代码运行次数:0
运行
复制
# 获取NameNode JMX指标
curl http://namenode:9870/jmx?qry=Hadoop:service=NameNode,name=NameNodeInfo

8. 紧急恢复命令

8.1 元数据恢复

代码语言:javascript
代码运行次数:0
运行
复制
hdfs namenode -recover        # 恢复元数据
hdfs namenode -importCheckpoint  # 从检查点恢复

8.2 数据节点退役

代码语言:javascript
代码运行次数:0
运行
复制
hdfs dfsadmin -refreshNodes   # 刷新节点列表
echo "hostname" > /excludes   # 添加退役节点

9. 实用技巧

9.1 小文件合并

代码语言:javascript
代码运行次数:0
运行
复制
hadoop archive -archiveName myhar.har -p /input /output  # 创建HAR归档

9.2 跨集群操作

代码语言:javascript
代码运行次数:0
运行
复制
hadoop distcp hdfs://nn1:8020/src hdfs://nn2:8020/dest  # 集群间复制

10. 命令速查表

代码语言:javascript
代码运行次数:0
运行
复制
| **类别**       | **常用命令**                     |
|---------------|--------------------------------|
| **文件操作**   | ls, put, get, rm, cp, mv       |
| **空间管理**   | df, du, setQuota               |
| **块管理**     | fsck, setrep, balancer         |
| **HA管理**     | haadmin, getServiceState       |
| **安全相关**   | kinit, getfacl, setfacl        |

提示:所有命令均需在配置了Hadoop环境变量的环境下执行,部分命令需要管理员权限。

在HDFS的的命令里面分两种命令:hadoop和hdfs

HDFS 文件操作(两者通用但语法不同)

操作

Hadoop 命令

HDFS 命令

查看文件列表

hadoop fs -ls /path

hdfs dfs -ls /path

上传文件

hadoop fs -put local hdfs

hdfs dfs -put local hdfs

下载文件

hadoop fs -get hdfs local

hdfs dfs -get hdfs local

删除文件

hadoop fs -rm /file

hdfs dfs -rm /file

底层实现

调用 HDFS 客户端 API

直接使用 HDFS 原生客户端

✅ 功能等价性: hadoop fs = hdfs dfs(日常文件操作可互换)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HDFS 文件操作(两者通用但语法不同)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档