目录大纲
Part01-基础概念与理论知识
1.1 日常巡检概述
日常巡检是指定期对Hadoop集群进行检查,及时发现和解决潜在问题,确保集群的稳定运行。日常巡检包括系统层面、服务层面和数据层面的检查。更多视频教程www.fgedu.net.cn
1.2 健康检查指标
- 系统指标:CPU使用率、内存使用率、磁盘使用率、网络状态
- 服务指标:HDFS状态、YARN状态、MapReduce作业状态
- 数据指标:数据完整性、数据一致性、数据备份状态
1.3 巡检工具与方法
巡检工具主要包括:Hadoop自带命令、监控系统(Prometheus、Grafana)、自定义脚本等。巡检方法主要包括:定期手动巡检、自动化巡检、实时监控等。学习交流加群风哥微信: itpux-com
Part02-生产环境规划与建议
2.1 巡检计划制定
# 1. 日常巡检:每天一次,检查基本状态
# 2. 周巡检:每周一次,检查详细状态
# 3. 月巡检:每月一次,全面检查
# 4. 季度巡检:每季度一次,深度检查
2.2 巡检内容规划
推荐的巡检内容包括:系统状态、服务状态、数据状态、安全状态等。风哥提示:巡检内容应根据集群规模和业务需求进行调整。
2.3 巡检结果处理
# 1. 记录巡检结果:将巡检结果记录到日志文件
# 2. 分析巡检结果:分析是否存在问题
# 3. 处理问题:对发现的问题进行处理
# 4. 跟踪问题:跟踪问题的解决情况
# 5. 总结经验:总结巡检经验,优化巡检流程
Part03-生产环境项目实施方案
3.1 系统层面检查
[root@fgedu.net.cn ~]# top -b -n 1 | head -n 10
top – 10:00:00 up 100 days, 8:30, 2 users, load average: 0.50, 0.45, 0.40
Tasks: 200 total, 1 running, 199 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.0 id, 0.5 wa, 0.0 hi, 0.5 si, 0.0 st
KiB Mem : 65974540 total, 10245678 free, 45678901 used, 10049961 buff/cache
KiB Swap: 8388604 total, 8388604 free, 0 used. 18045678 avail Mem
# 检查磁盘使用情况
[root@fgedu.net.cn ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 30G 40% /
/dev/sdb1 100G 40G 60G 40% /data
/dev/sdc1 1.8T 800G 1.0T 45% /bigdata
# 检查网络状态
[root@fgedu.net.cn ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN
3.2 Hadoop服务检查
[root@fgedu.net.cn ~]# hdfs dfsadmin -report
Configured Capacity: 1099511627776 (1024.0 GB)
Present Capacity: 879609302016 (819.2 GB)
DFS Remaining: 703687441664 (655.4 GB)
DFS Used: 175921860352 (163.8 GB)
DFS Used%: 20.0%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
# 检查YARN状态
[root@fgedu.net.cn ~]# yarn node -list
Total Nodes:3
Node-Id Node-State Node-Http-Address Number-of-Running-Containers
datanode1:45454 RUNNING datanode1:8042 0
datanode2:45454 RUNNING datanode2:8042 0
datanode3:45454 RUNNING datanode3:8042 0
# 检查MapReduce作业
[root@fgedu.net.cn ~]# mapred job -list
Total jobs:0
3.3 数据层面检查
[root@fgedu.net.cn ~]# hdfs fsck /
FSCK started by root (auth:SIMPLE) from /192.168.1.10 for path / at 2023-04-08 10:00:00
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
Status: HEALTHY
Total size: 175921860352 B
Total dirs: 1000
Total files: 10000
Total symlinks: 0
Total blocks (validated): 10000 (avg. block size 17592186 B)
Minimally replicated blocks: 10000 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 0 (0.0 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 3
Average block replication: 3.0
Corrupt blocks: 0
Missing replicas: 0 (0.0 %)
Number of data-nodes: 3
Number of racks: 1
FSCK ended at 2023-04-08 10:05:00 in 300 seconds
# 检查数据备份状态
[root@fgedu.net.cn ~]# hdfs dfs -ls hdfs://backup-cluster/user/fgedu/backup/
Found 7 items
drwxr-xr-x – hdfs supergroup 0 2023-04-01 00:00 hdfs://backup-cluster/user/fgedu/backup/20230401
drwxr-xr-x – hdfs supergroup 0 2023-04-02 00:00 hdfs://backup-cluster/user/fgedu/backup/20230402
drwxr-xr-x – hdfs supergroup 0 2023-04-03 00:00 hdfs://backup-cluster/user/fgedu/backup/20230403
drwxr-xr-x – hdfs supergroup 0 2023-04-04 00:00 hdfs://backup-cluster/user/fgedu/backup/20230404
drwxr-xr-x – hdfs supergroup 0 2023-04-05 00:00 hdfs://backup-cluster/user/fgedu/backup/20230405
drwxr-xr-x – hdfs supergroup 0 2023-04-06 00:00 hdfs://backup-cluster/user/fgedu/backup/20230406
drwxr-xr-x – hdfs supergroup 0 2023-04-07 00:00 hdfs://backup-cluster/user/fgedu/backup/20230407
Part04-生产案例与实战讲解
4.1 日常巡检脚本
案例背景
某企业需要制定日常巡检脚本,实现自动化巡检,提高巡检效率。
实施步骤
- 编写巡检脚本,包含系统、服务和数据层面的检查
- 设置定时任务,定期执行巡检脚本
- 配置巡检结果通知,及时发现问题
- 分析巡检结果,优化巡检流程
实施效果
通过自动化巡检脚本,企业实现了巡检的自动化,提高了巡检效率,减少了人工操作。from bigdata视频:www.itpux.com
4.2 健康检查实战
#!/bin/bash
# daily_inspection.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
# 导出环境变量
export HADOOP_HOME=/bigdata/app/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
# 巡检日期
INSPECTION_DATE=$(date +%Y%m%d)
# 巡检日志目录
LOG_DIR=”/bigdata/logs/inspection”
mkdir -p $LOG_DIR
LOG_FILE=”$LOG_DIR/inspection_$INSPECTION_DATE.log”
# 开始巡检
echo “开始巡检:$(date)” >> $LOG_FILE
# 1. 系统层面检查
echo “=== 系统层面检查 ===” >> $LOG_FILE
echo “CPU使用情况:” >> $LOG_FILE
top -b -n 1 | head -n 10 >> $LOG_FILE
echo “内存使用情况:” >> $LOG_FILE
free -h >> $LOG_FILE
echo “磁盘使用情况:” >> $LOG_FILE
df -h >> $LOG_FILE
echo “网络状态:” >> $LOG_FILE
netstat -tuln >> $LOG_FILE
# 2. Hadoop服务检查
echo “=== Hadoop服务检查 ===” >> $LOG_FILE
echo “HDFS状态:” >> $LOG_FILE
hdfs dfsadmin -report >> $LOG_FILE
echo “YARN状态:” >> $LOG_FILE
yarn node -list >> $LOG_FILE
echo “MapReduce作业:” >> $LOG_FILE
mapred job -list >> $LOG_FILE
# 3. 数据层面检查
echo “=== 数据层面检查 ===” >> $LOG_FILE
echo “HDFS文件系统检查:” >> $LOG_FILE
hdfs fsck / >> $LOG_FILE
echo “数据备份状态:” >> $LOG_FILE
hdfs dfs -ls hdfs://backup-cluster/user/fgedu/backup/ >> $LOG_FILE
# 结束巡检
echo “巡检结束:$(date)” >> $LOG_FILE
# 发送巡检报告
mail -s “Hadoop集群巡检报告 $INSPECTION_DATE” ops@fgedu.net.cn < $LOG_FILE
4.3 巡检结果分析
#!/bin/bash
# analysis_inspection.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
# 导出环境变量
export HADOOP_HOME=/bigdata/app/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
# 巡检日志目录
LOG_DIR=”/bigdata/logs/inspection”
# 分析最近7天的巡检结果
echo “分析最近7天的巡检结果…”
for i in $(seq 7); do
LOG_FILE=”$LOG_DIR/inspection_$(date -d “$i days ago” +%Y%m%d).log”
if [ -f $LOG_FILE ]; then
echo “=== 分析 $LOG_FILE ===”
# 检查CPU使用率
CPU_USAGE=$(grep “%Cpu(s):” $LOG_FILE | awk ‘{print $2}’)
if (( $(echo “$CPU_USAGE > 80” | bc -l) )); then
echo “警告:CPU使用率过高:$CPU_USAGE%”
fi
# 检查内存使用率
MEM_USAGE=$(grep “Mem :” $LOG_FILE | awk ‘{print $3/$2*100}’)
if (( $(echo “$MEM_USAGE > 80” | bc -l) )); then
echo “警告:内存使用率过高:$MEM_USAGE%”
fi
# 检查磁盘使用率
DISK_USAGE=$(grep “bigdata” $LOG_FILE | awk ‘{print $5}’ | sed ‘s/%//’)
if (( $DISK_USAGE > 80 )); then
echo “警告:磁盘使用率过高:$DISK_USAGE%”
fi
# 检查HDFS状态
if grep “HEALTHY” $LOG_FILE; then
echo “HDFS状态:健康”
else
echo “警告:HDFS状态异常”
fi
fi
done
Part05-风哥经验总结与分享
5.1 日常巡检最佳实践
- 制定完善的巡检计划:根据集群规模和业务需求制定合理的巡检计划
- 实现自动化巡检:编写巡检脚本,设置定时任务,实现巡检自动化
- 建立巡检报告机制:定期生成巡检报告,分析集群状态
- 及时处理问题:对巡检发现的问题及时处理,避免问题扩大
- 优化巡检流程:根据巡检结果不断优化巡检流程,提高巡检效率
5.2 常见问题与解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
| CPU使用率过高 | 作业负载过高或系统资源不足 | 调整作业调度,增加系统资源 |
| 内存使用率过高 | 作业内存配置过大或内存泄漏 | 调整作业内存配置,检查内存泄漏 |
| 磁盘使用率过高 | 数据量增长过快或垃圾文件过多 | 清理垃圾文件,扩展存储容量 |
| HDFS状态异常 | 数据块损坏或服务故障 | 修复数据块,重启服务 |
5.3 巡检工具推荐
# 1. Prometheus + Grafana:实时监控集群状态,生成可视化报表
# 2. Zabbix:全面监控系统和服务状态,支持告警
# 3. Nagios:监控网络和服务状态,支持告警
# 4. Custom scripts:根据实际需求编写自定义巡检脚本
# 5. Hadoop自带命令:hdfs dfsadmin、yarn node等命令
通过Hadoop集群日常巡检与健康检查的实施,可以及时发现和解决潜在问题,确保集群的稳定运行,提高系统的可靠性和可用性。日常巡检是运维工作的重要组成部分,需要定期进行,不断优化。学习交流加群风哥QQ1132571
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
