1. 首页 > Hadoop教程 > 正文

大数据教程FG092-Hadoop集群日常巡检

本文档风哥主要介绍Hadoop集群日常巡检,包括巡检项目、巡检脚本、巡检报告等内容,风哥教程参考Hadoop官方文档Cluster Setup等内容,适合大数据运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 日常巡检概述

Hadoop集群日常巡检是保障集群稳定运行的重要工作,通过定期巡检可以及时发现和解决问题。学习交流加群风哥微信: itpux-com

日常巡检核心要素:

  • 服务状态:检查各服务运行状态
  • 资源使用:监控资源使用情况
  • 健康检查:检查集群健康状态
  • 问题处理:及时发现和处理问题
# Hadoop日常巡检简介

日常巡检是运维工作的基础,
通过巡检保障集群稳定运行。

主要目的:
1. 发现问题
– 服务异常
– 资源不足
– 性能下降

2. 预防问题
– 容量规划
– 性能优化
– 风险预警

3. 记录状态
– 集群状态
– 资源使用
– 性能指标

# 巡检分类

1. 日常巡检
频率:每日
内容:服务状态、基础检查

2. 周巡检
频率:每周
内容:深度检查、趋势分析

3. 月巡检
频率:每月
内容:全面检查、容量规划

4. 专项巡检
频率:按需
内容:特定问题检查

# 巡检流程

┌─────────────────────────────────────────┐
│ 执行巡检 │
└───────────────────┬─────────────────────┘


┌─────────────────────────────────────────┐
│ 收集数据 │
└───────────────────┬─────────────────────┘


┌─────────────────────────────────────────┐
│ 分析数据 │
└───────────────────┬─────────────────────┘


┌─────────────────────────────────────────┐
│ 生成报告 │
└───────────────────┬─────────────────────┘


┌─────────────────────────────────────────┐
│ 处理问题 │
└─────────────────────────────────────────┘

# 巡检原则

1. 全面性
覆盖所有关键组件和指标

2. 规范性
统一巡检标准和流程

3. 及时性
按时执行巡检任务

4. 有效性
巡检结果可操作

5. 可追溯
巡检记录可查询

1.2 巡检项目分类

巡检项目分类详解:

# 系统层巡检项目

1. 硬件状态
项目 检查内容 正常标准
服务器状态 是否在线 全部在线
CPU使用率 使用百分比 < 80% 内存使用率 使用百分比 < 85% 磁盘使用率 使用百分比 < 85% 网络状态 连接状态 正常 2. 操作系统 项目 检查内容 正常标准 系统时间 时间同步 误差<1秒 系统负载 Load Average < CPU核数 进程状态 关键进程 运行中 系统日志 错误日志 无严重错误 # HDFS巡检项目 1. NameNode 项目 检查内容 正常标准 服务状态 进程状态 运行中 堆内存使用 使用百分比 < 85% GC情况 GC频率和时间 正常 RPC队列 队列长度 < 100 文件数量 文件总数 监控趋势 块数量 块总数 监控趋势 2. DataNode 项目 检查内容 正常标准 存活节点 存活数量 全部存活 磁盘使用 使用百分比 < 85% 块数量 块总数 监控趋势 网络流量 读写流量 监控趋势 3. 块健康 项目 检查内容 正常标准 丢失块 Missing Blocks 0 损坏块 Corrupt Blocks 0 副本不足块 Under Replicated < 100 待复制块 Pending Replication < 1000 # YARN巡检项目 1. ResourceManager 项目 检查内容 正常标准 服务状态 进程状态 运行中 堆内存使用 使用百分比 < 85% 应用数量 运行中应用 监控趋势 队列状态 队列资源 正常 2. NodeManager 项目 检查内容 正常标准 存活节点 存活数量 全部存活 容器数量 运行中容器 监控趋势 资源使用 CPU/内存使用 < 85% # 安全巡检项目 项目 检查内容 正常标准 Kerberos状态 服务状态 运行中 证书有效期 过期时间 > 30天
权限配置 权限设置 符合规范
审计日志 日志完整性 完整

# 备份巡检项目

项目 检查内容 正常标准
备份任务 执行状态 成功
备份数据 数据完整性 完整
恢复测试 恢复结果 成功

1.3 巡检工具介绍

巡检工具介绍:

# 原生命令工具

1. HDFS命令
命令 用途
hdfs dfsadmin -report 集群报告
hdfs fsck / 文件系统检查
hdfs haadmin -getAllServiceState HA状态

2. YARN命令
命令 用途
yarn node -list 节点列表
yarn application -list 应用列表
yarn queue -status 队列状态

3. 系统命令
命令 用途
top 系统资源
free -m 内存使用
df -h 磁盘使用
iostat IO统计

# Web界面

1. NameNode UI
URL: http://nn:9870
功能: 集群概览、文件浏览、块信息

2. ResourceManager UI
URL: http://rm:8088
功能: 集群状态、应用管理、队列信息

3. History Server UI
URL: http://hs:19888
功能: 作业历史、任务详情

# 监控工具

工具 用途
Prometheus 指标采集
Grafana 可视化展示
AlertManager 告警管理

# 自动化巡检脚本

#!/bin/bash
# daily_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

# 自动执行巡检
# 收集巡检数据
# 生成巡检报告
# 发送告警通知

# 巡检报告模板

报告内容:
1. 集群概览
2. 服务状态
3. 资源使用
4. 健康检查
5. 问题列表
6. 建议措施

风哥提示:日常巡检是保障集群稳定运行的基础工作。建议建立完善的巡检制度和流程,使用自动化工具提高巡检效率。

Part02-生产环境规划与建议

2.1 环境规划建议

环境规划建议:

# 巡检环境规划

1. 巡检服务器
配置: 4C/8G/100G
功能: 执行巡检脚本、存储报告

2. 巡检目录
目录 用途
/bigdata/scripts/inspection 巡检脚本
/bigdata/data/inspection 巡检数据
/bigdata/reports/inspection 巡检报告

3. 巡检用户
用户: hadoop_admin
权限: 集群管理权限

# 巡检时间规划

巡检类型 执行时间 耗时
日常巡检 每日09:00 10分钟
周巡检 每周一09:00 30分钟
月巡检 每月1日09:00 2小时

# 巡检通知规划

通知类型 方式 接收人
日常报告 邮件 运维团队
异常告警 邮件+钉钉 运维团队+负责人
周报 邮件 运维团队+管理层
月报 邮件+会议 全体相关人员

2.2 巡检计划建议

巡检计划建议:

# 日常巡检计划

时间: 每日09:00
内容:
1. 服务状态检查
– NameNode状态
– DataNode状态
– ResourceManager状态
– NodeManager状态

2. 基础健康检查
– 丢失块检查
– 损坏块检查
– 死亡节点检查

3. 资源使用检查
– HDFS容量
– YARN资源
– 系统资源

4. 日志检查
– 错误日志
– 告警日志

# 周巡检计划

时间: 每周一09:00
内容:
1. 日常巡检所有内容
2. 性能趋势分析
3. 容量增长分析
4. 配置变更检查
5. 安全审计检查

# 月巡检计划

时间: 每月1日09:00
内容:
1. 周巡检所有内容
2. 容量规划评估
3. 性能优化评估
4. 安全策略评估
5. 备份恢复验证
6. 文档更新检查

# 专项巡检计划

触发条件:
– 重大变更前后
– 故障恢复后
– 性能问题排查
– 安全事件响应

内容:
– 针对性检查
– 深度分析
– 问题排查

2.3 报告规划建议

巡检报告规划建议:

# 报告格式

1. 日常巡检报告
格式: 简要报告
内容: 状态概览、异常项、处理建议
发送: 邮件

2. 周巡检报告
格式: 详细报告
内容: 完整巡检结果、趋势分析、建议
发送: 邮件

3. 月巡检报告
格式: 综合报告
内容: 月度总结、趋势分析、规划建议
发送: 邮件+会议汇报

# 报告模板

========================================
Hadoop集群巡检报告
========================================
巡检时间: YYYY-MM-DD HH:MM:SS
巡检人员: XXX
集群名称: fgedu-hadoop

一、集群概览
集群状态: 正常/异常
节点数量: X
存储容量: X TB
资源总量: X vcores, X GB

二、服务状态
NameNode: 正常
DataNode: X/X 正常
ResourceManager: 正常
NodeManager: X/X 正常

三、健康检查
丢失块: 0
损坏块: 0
死亡节点: 0

四、资源使用
HDFS使用率: X%
YARN使用率: X%
系统CPU: X%
系统内存: X%

五、问题列表
1. [问题描述]
影响: [影响范围]
建议: [处理建议]

六、建议措施
1. [建议内容]

========================================

生产环境建议:生产环境建议建立完善的巡检制度,使用自动化工具执行巡检,定期审查巡检策略。学习交流加群风哥QQ113257174

Part03-生产环境项目实施方案

3.1 日常巡检实战

# 日常巡检脚本
$ cat > /bigdata/scripts/inspection/daily_check.sh << 'EOF' #!/bin/bash # daily_check.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn DATE=$(date +%Y%m%d) TIME=$(date +%Y%m%d_%H%M%S) REPORT_DIR="/bigdata/reports/inspection" REPORT_FILE="${REPORT_DIR}/daily_${TIME}.txt" mkdir -p $REPORT_DIR echo "========================================" > $REPORT_FILE
echo “Hadoop集群日常巡检报告” >> $REPORT_FILE
echo “========================================” >> $REPORT_FILE
echo “巡检时间: $(date)” >> $REPORT_FILE
echo “” >> $REPORT_FILE

# 1. 服务状态检查
echo “一、服务状态检查” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE

# NameNode状态
echo “1. NameNode状态:” >> $REPORT_FILE
NN_STATUS=$(jps | grep NameNode | wc -l)
if [ “$NN_STATUS” -eq 1 ]; then
echo ” NameNode: 运行中” >> $REPORT_FILE
else
echo ” NameNode: 异常(未运行)” >> $REPORT_FILE
fi

# DataNode状态
echo “2. DataNode状态:” >> $REPORT_FILE
hdfs dfsadmin -report | grep “Live datanodes” >> $REPORT_FILE
hdfs dfsadmin -report | grep “Dead datanodes” >> $REPORT_FILE

# ResourceManager状态
echo “3. ResourceManager状态:” >> $REPORT_FILE
RM_STATUS=$(jps | grep ResourceManager | wc -l)
if [ “$RM_STATUS” -eq 1 ]; then
echo ” ResourceManager: 运行中” >> $REPORT_FILE
else
echo ” ResourceManager: 异常(未运行)” >> $REPORT_FILE
fi

# NodeManager状态
echo “4. NodeManager状态:” >> $REPORT_FILE
yarn node -list 2>/dev/null | grep “Total Nodes” >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 2. 健康检查
echo “二、健康检查” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE

# 丢失块检查
echo “1. 块健康状态:” >> $REPORT_FILE
hdfs fsck / 2>&1 | grep -E “MISSING|CORRUPT|UNDER REPLICTED” >> $REPORT_FILE

# 存储状态
echo “2. 存储状态:” >> $REPORT_FILE
hdfs dfsadmin -report | grep -A3 “Configured Capacity” >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 3. 资源使用
echo “三、资源使用” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE

# HDFS使用率
echo “1. HDFS使用率:” >> $REPORT_FILE
hdfs dfsadmin -report | grep “DFS Used%” >> $REPORT_FILE

# YARN资源
echo “2. YARN资源:” >> $REPORT_FILE
yarn node -list -all 2>/dev/null | head -10 >> $REPORT_FILE

# 系统资源
echo “3. 系统资源:” >> $REPORT_FILE
echo ” CPU使用率: $(top -bn1 | grep “Cpu(s)” | awk ‘{print $2}’)%” >> $REPORT_FILE
echo ” 内存使用率: $(free | awk ‘/Mem/{printf “%.2f%%”, $3/$2*100}’)” >> $REPORT_FILE
echo ” 磁盘使用率: $(df -h / | awk ‘NR==2{print $5}’)” >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 4. 日志检查
echo “四、日志检查” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE

ERROR_COUNT=$(grep -c “ERROR” /bigdata/app/hadoop/logs/hadoop-*-namenode-*.log 2>/dev/null || echo 0)
echo “NameNode ERROR日志数量: $ERROR_COUNT” >> $REPORT_FILE

WARN_COUNT=$(grep -c “WARN” /bigdata/app/hadoop/logs/hadoop-*-namenode-*.log 2>/dev/null || echo 0)
echo “NameNode WARN日志数量: $WARN_COUNT” >> $REPORT_FILE

echo “” >> $REPORT_FILE
echo “========================================” >> $REPORT_FILE

# 发送报告
mail -s “Hadoop集群日常巡检报告 $DATE” admin@fgedu.com < $REPORT_FILE echo "巡检完成,报告已发送" EOF $ chmod +x /bigdata/scripts/inspection/daily_check.sh # 执行巡检 $ /bigdata/scripts/inspection/daily_check.sh ======================================== Hadoop集群日常巡检报告 ======================================== 巡检时间: 2026年 04月 08日 09:00:00 CST 一、服务状态检查 ---------------------------------------- 1. NameNode状态: NameNode: 运行中 2. DataNode状态: Live datanodes (10): Dead datanodes (0): 3. ResourceManager状态: ResourceManager: 运行中 4. NodeManager状态: Total Nodes:10 二、健康检查 ---------------------------------------- 1. 块健康状态: Status: HEALTHY 2. 存储状态: Configured Capacity: 600000000000 (600 TB) Present Capacity: 580000000000 (580 TB) DFS Remaining: 400000000000 (400 TB) 三、资源使用 ---------------------------------------- 1. HDFS使用率: DFS Used%: 31.03% 2. YARN资源: Total Nodes:10 3. 系统资源: CPU使用率: 25.3% 内存使用率: 68.50% 磁盘使用率: 45% 四、日志检查 ---------------------------------------- NameNode ERROR日志数量: 0 NameNode WARN日志数量: 15 ========================================

3.2 周巡检实战

# 周巡检脚本
$ cat > /bigdata/scripts/inspection/weekly_check.sh << 'EOF' #!/bin/bash # weekly_check.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn DATE=$(date +%Y%m%d) TIME=$(date +%Y%m%d_%H%M%S) REPORT_DIR="/bigdata/reports/inspection" REPORT_FILE="${REPORT_DIR}/weekly_${TIME}.txt" mkdir -p $REPORT_DIR echo "========================================" > $REPORT_FILE
echo “Hadoop集群周巡检报告” >> $REPORT_FILE
echo “========================================” >> $REPORT_FILE
echo “巡检时间: $(date)” >> $REPORT_FILE
echo “” >> $REPORT_FILE

# 1. 日常巡检内容
echo “一、基础巡检” >> $REPORT_FILE
/bigdata/scripts/inspection/daily_check.sh >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 2. 性能趋势分析
echo “二、性能趋势分析” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE

# HDFS增长趋势
echo “1. HDFS存储增长:” >> $REPORT_FILE
echo ” 当前使用: $(hdfs dfsadmin -report | grep “DFS Used” | head -1)” >> $REPORT_FILE

# 作业统计
echo “2. 作业统计:” >> $REPORT_FILE
yarn application -list -appStates FINISHED 2>/dev/null | wc -l >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 3. 配置变更检查
echo “三、配置变更检查” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE
echo “检查配置文件变更:” >> $REPORT_FILE
ls -la /bigdata/app/hadoop/etc/hadoop/*.xml >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 4. 安全审计
echo “四、安全审计” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE
echo “审计日志统计:” >> $REPORT_FILE
wc -l /bigdata/app/hadoop/logs/hdfs-audit.log >> $REPORT_FILE

echo “” >> $REPORT_FILE
echo “========================================” >> $REPORT_FILE

mail -s “Hadoop集群周巡检报告 $DATE” admin@fgedu.com < $REPORT_FILE echo "周巡检完成" EOF $ chmod +x /bigdata/scripts/inspection/weekly_check.sh $ /bigdata/scripts/inspection/weekly_check.sh

3.3 月巡检实战

# 月巡检脚本
$ cat > /bigdata/scripts/inspection/monthly_check.sh << 'EOF' #!/bin/bash # monthly_check.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn DATE=$(date +%Y%m%d) TIME=$(date +%Y%m%d_%H%M%S) REPORT_DIR="/bigdata/reports/inspection" REPORT_FILE="${REPORT_DIR}/monthly_${TIME}.txt" mkdir -p $REPORT_DIR echo "========================================" > $REPORT_FILE
echo “Hadoop集群月巡检报告” >> $REPORT_FILE
echo “========================================” >> $REPORT_FILE
echo “巡检时间: $(date)” >> $REPORT_FILE
echo “” >> $REPORT_FILE

# 1. 周巡检内容
echo “一、基础巡检” >> $REPORT_FILE
/bigdata/scripts/inspection/weekly_check.sh >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 2. 容量规划
echo “二、容量规划评估” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE
echo “1. 存储容量:” >> $REPORT_FILE
hdfs dfsadmin -report | grep -E “Capacity|Used|Remaining” >> $REPORT_FILE

echo “” >> $REPORT_FILE
echo “2. 计算资源:” >> $REPORT_FILE
yarn node -list -all 2>/dev/null | grep “Total Nodes” >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 3. 备份验证
echo “三、备份恢复验证” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE
echo “检查备份任务状态:” >> $REPORT_FILE
ls -la /backup/hadoop/ >> $REPORT_FILE

echo “” >> $REPORT_FILE

# 4. 文档检查
echo “四、文档更新检查” >> $REPORT_FILE
echo “—————————————-” >> $REPORT_FILE
echo “检查运维文档:” >> $REPORT_FILE
ls -la /bigdata/docs/ >> $REPORT_FILE

echo “” >> $REPORT_FILE
echo “========================================” >> $REPORT_FILE

mail -s “Hadoop集群月巡检报告 $DATE” admin@fgedu.com < $REPORT_FILE echo "月巡检完成" EOF $ chmod +x /bigdata/scripts/inspection/monthly_check.sh $ /bigdata/scripts/inspection/monthly_check.sh # 配置定时任务 $ crontab -e # 日常巡检 0 9 * * * /bigdata/scripts/inspection/daily_check.sh # 周巡检 0 9 * * 1 /bigdata/scripts/inspection/weekly_check.sh # 月巡检 0 9 1 * * /bigdata/scripts/inspection/monthly_check.sh

风哥提示:巡检脚本可以根据实际需求定制。建议将巡检任务自动化,配置定时执行,提高运维效率。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 巡检案例

# 案例:巡检发现DataNode磁盘使用率过高

# 1. 巡检发现
日常巡检报告显示:
DataNode fgedu-node3 磁盘使用率: 92%

# 2. 问题分析
# 检查磁盘使用
$ ssh fgedu-node3 “df -h”

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 500G 460G 40G 92% /

# 检查HDFS数据目录
$ ssh fgedu-node3 “du -sh /bigdata/fgdata/*”

50G /bigdata/fgdata/current

# 3. 解决方案
# 方案1: 数据均衡
$ hdfs balancer -threshold 5

# 方案2: 添加新磁盘
# 挂载新磁盘,配置多目录

# 方案3: 清理临时数据
$ ssh fgedu-node3 “rm -rf /tmp/*”

# 4. 验证结果
$ ssh fgedu-node3 “df -h”

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 500G 400G 100G 80% /

4.2 健康检查案例

# 案例:健康检查发现丢失块

# 1. 健康检查
$ hdfs fsck /


Status: HEALTHY
Total size: 180000000000 B
Total blocks: 500000
Minimally replicated blocks: 500000 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 5 (0.001 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 3
Average block replication: 3.00
Corrupt blocks: 0
Missing blocks: 0
Missing replicas: 5

# 2. 检查副本不足块
$ hdfs fsck / | grep “Under replicated”

# 3. 修复副本
# 增加复制因子
$ hdfs dfs -setrep 4 /user/fgedu/data

# 或等待自动修复
# HDFS会自动复制副本不足的块

# 4. 验证修复
$ hdfs fsck /

Status: HEALTHY
Under-replicated blocks: 0 (0.0 %)

4.3 常见问题处理

4.3.1 巡检脚本执行失败

# 问题现象:巡检脚本执行失败

# 排查步骤
# 1. 检查脚本权限
$ ls -la /bigdata/scripts/inspection/daily_check.sh

-rw-r–r– 1 root root 1234 Apr 8 09:00 daily_check.sh

# 2. 检查执行权限
$ chmod +x /bigdata/scripts/inspection/daily_check.sh

# 3. 检查环境变量
$ echo $PATH

# 4. 检查命令路径
$ which hdfs
$ which yarn

# 解决方案
# 在脚本开头添加环境变量
export PATH=/bigdata/app/hadoop/bin:$PATH
export HADOOP_HOME=/bigdata/app/hadoop

4.3.2 巡检报告发送失败

# 问题现象:巡检报告邮件发送失败

# 排查步骤
# 1. 检查邮件服务
$ systemctl status postfix

# 2. 检查邮件配置
$ cat /etc/postfix/main.cf

# 3. 测试邮件发送
$ echo “test” | mail -s “test” admin@fgedu.com

# 解决方案
# 配置邮件服务器
$ systemctl start postfix
$ systemctl enable postfix

Part05-风哥经验总结与分享

5.1 巡检最佳实践

巡检最佳实践建议:

# 巡检最佳实践
1. 建立完善的巡检制度
2. 使用自动化巡检工具
3. 定期审查巡检策略
4. 及时处理巡检发现的问题
5. 做好巡检记录和追溯

5.2 使用建议

使用建议:

巡检使用建议:

  • 巡检要全面覆盖
  • 巡检要按时执行
  • 问题要及时处理
  • 报告要规范记录

5.3 工具推荐

巡检工具推荐:

  • 自定义脚本:灵活定制
  • 监控系统:实时监控
  • 自动化工具:定时执行
  • 报告系统:报告生成
风哥提示:日常巡检是保障集群稳定运行的基础工作。建议建立完善的巡检制度,使用自动化工具提高效率,及时发现和处理问题。from bigdata视频:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息