1. 首页 > Hadoop教程 > 正文

大数据教程FG091-Hadoop集群日志管理

本文档风哥主要介绍Hadoop集群日志管理,包括日志配置、日志收集、日志分析等内容,风哥教程参考Hadoop官方文档Logging等内容,适合大数据运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 日志管理概述

Hadoop集群日志管理是运维工作的重要组成部分,通过日志可以排查问题、审计操作、优化性能。学习交流加群风哥微信: itpux-com

日志管理核心要素:

  • 日志收集:统一收集各组件日志
  • 日志存储:集中存储日志数据
  • 日志分析:分析日志发现问题
  • 日志告警:异常日志及时告警
# Hadoop日志管理简介

日志是排查问题的重要依据,
通过日志可以了解系统运行状态。

主要功能:
1. 问题排查
– 定位错误原因
– 追踪问题链路
– 分析根本原因

2. 安全审计
– 记录用户操作
– 追踪访问记录
– 合规审计

3. 性能优化
– 分析性能瓶颈
– 优化资源配置
– 提升系统性能

4. 运维监控
– 监控系统状态
– 预警潜在问题
– 保障系统稳定

# 日志管理架构

┌─────────────────────────────────────────┐
│ 应用层 │
│ HDFS、YARN、Hive、Spark等 │
└───────────────────┬─────────────────────┘
│ 日志输出

┌─────────────────────────────────────────┐
│ 日志收集层 │
│ Filebeat、Fluentd、Logstash │
└───────────────────┬─────────────────────┘
│ 日志传输

┌─────────────────────────────────────────┐
│ 日志存储层 │
│ Elasticsearch、HDFS │
└───────────────────┬─────────────────────┘
│ 日志查询

┌─────────────────────────────────────────┐
│ 日志分析层 │
│ Kibana、Grafana │
└─────────────────────────────────────────┘

# 日志级别

级别 说明 使用场景
FATAL 致命错误 系统崩溃
ERROR 错误 功能异常
WARN 警告 潜在问题
INFO 信息 正常运行
DEBUG 调试 调试信息
TRACE 追踪 详细追踪

# 日志格式

标准格式:
[时间] [级别] [类名] [线程] 消息内容

示例:
2026-04-08 10:00:00,000 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: NameNode startup completed.

# 日志管理原则

1. 完整性
记录所有关键操作和事件

2. 规范性
统一日志格式和命名

3. 安全性
敏感信息脱敏处理

4. 可用性
日志易于查询和分析

5. 经济性
合理设置日志保留时间

1.2 日志类型分类

日志类型分类详解:

# Hadoop日志类型

1. HDFS日志

NameNode日志:
路径: /bigdata/app/hadoop/logs/hadoop-*-namenode-*.log
内容: NameNode运行日志
关键信息: 块管理、命名空间、RPC请求

DataNode日志:
路径: /bigdata/app/hadoop/logs/hadoop-*-datanode-*.log
内容: DataNode运行日志
关键信息: 块读写、心跳、数据传输

JournalNode日志:
路径: /bigdata/app/hadoop/logs/hadoop-*-journalnode-*.log
内容: JournalNode运行日志
关键信息: EditLog同步

ZKFC日志:
路径: /bigdata/app/hadoop/logs/hadoop-*-zkfc-*.log
内容: ZKFC运行日志
关键信息: 主备切换

2. YARN日志

ResourceManager日志:
路径: /bigdata/app/hadoop/logs/yarn-*-resourcemanager-*.log
内容: ResourceManager运行日志
关键信息: 应用管理、资源调度

NodeManager日志:
路径: /bigdata/app/hadoop/logs/yarn-*-nodemanager-*.log
内容: NodeManager运行日志
关键信息: 容器管理、资源监控

ApplicationMaster日志:
路径: /bigdata/app/hadoop/logs/userlogs/application_*/container_*
内容: AM运行日志
关键信息: 任务调度、状态管理

3. 审计日志

HDFS审计日志:
路径: /bigdata/app/hadoop/logs/hdfs-audit.log
内容: HDFS操作审计
关键信息: 文件操作、权限变更

YARN审计日志:
路径: /bigdata/app/hadoop/logs/yarn-audit.log
内容: YARN操作审计
关键信息: 应用提交、队列操作

4. GC日志

GC日志:
路径: /bigdata/app/hadoop/logs/gc.log
内容: JVM垃圾回收日志
关键信息: GC次数、GC时间、内存变化

5. 服务日志

Hive日志:
路径: /bigdata/app/hive/logs/hive.log
内容: HiveServer2运行日志

Spark日志:
路径: /bigdata/app/spark/logs/
内容: Spark应用日志

ZooKeeper日志:
路径: /bigdata/app/zookeeper/logs/
内容: ZooKeeper运行日志

# 日志文件命名规范

格式: [服务名]-[用户名]-[组件名]-[主机名].log

示例:
hadoop-root-namenode-fgedu-node1.log
yarn-root-resourcemanager-fgedu-node1.log

# 日志滚动策略

1. 按大小滚动
达到指定大小后滚动

2. 按时间滚动
每天或每小时滚动

3. 按数量保留
保留指定数量的日志文件

# 日志配置文件

log4j.properties:
Hadoop使用log4j作为日志框架
配置日志级别、输出格式、滚动策略

1.3 日志工具介绍

日志工具介绍:

# ELK Stack

ELK是Elasticsearch、Logstash、Kibana的组合,
是目前最流行的日志管理方案。

1. Elasticsearch
– 分布式搜索引擎
– 存储和索引日志
– 提供查询API

2. Logstash
– 日志收集处理
– 支持多种输入输出
– 强大的过滤功能

3. Kibana
– 数据可视化
– 日志查询界面
– 仪表盘展示

# Filebeat

Filebeat是轻量级日志收集器,
用于收集和转发日志文件。

特点:
– 轻量级
– 低资源消耗
– 支持多种输出

配置示例:
filebeat.inputs:
– type: log
paths:
– /bigdata/app/hadoop/logs/*.log
fields:
type: hadoop

output.elasticsearch:
hosts: [“localhost:9200”]

# Fluentd

Fluentd是开源的日志收集系统,
支持多种输入输出插件。

特点:
– 统一日志层
– 插件丰富
– 灵活配置

# 日志分析工具

1. grep/awk/sed
命令行日志分析

2. Kibana
可视化日志分析

3. Grafana Loki
轻量级日志聚合

# 日志告警工具

1. ElastAlert
Elasticsearch告警工具

2. Prometheus AlertManager
与监控集成

3. 自定义脚本
根据需求定制

# 工具对比

工具 优点 缺点
ELK 功能强大、生态完善 资源消耗大
Loki 轻量级、成本低 功能相对简单
Fluentd 灵活、插件多 配置复杂

风哥提示:ELK Stack是目前最流行的日志管理方案,适合大规模日志收集和分析。对于中小规模集群,可以考虑使用Loki等轻量级方案。

Part02-生产环境规划与建议

2.1 环境规划建议

环境规划建议:

# 版本兼容性

组件 推荐版本
Elasticsearch 8.11.0
Logstash 8.11.0
Kibana 8.11.0
Filebeat 8.11.0

# 硬件规划

组件 配置 数量
Elasticsearch 16C/32G/2T 3(集群)
Logstash 8C/16G/500G 2
Kibana 4C/8G/100G 1
Filebeat – 每个节点

# 软件依赖

1. Elasticsearch
– Java 17+
– systemd

2. Logstash
– Java 11+

3. Kibana
– Node.js

# 网络规划

端口 用途
9200 Elasticsearch HTTP
9300 Elasticsearch Transport
5601 Kibana Web
5044 Logstash Beats
9600 Logstash API

# 目录规划

目录 用途
/bigdata/app/elasticsearch ES安装目录
/bigdata/app/elasticsearch/data ES数据目录
/bigdata/app/logstash Logstash安装目录
/bigdata/app/kibana Kibana安装目录

# 存储规划

数据类型 保留时间 存储空间
系统日志 30天 500GB
应用日志 15天 1TB
审计日志 180天 2TB

# 高可用规划

1. Elasticsearch集群
– 3个Master节点
– 多个Data节点
– 副本分片

2. Logstash高可用
– 多实例部署
– 负载均衡

3. Kibana高可用
– 多实例部署
– 负载均衡

2.2 策略规划建议

日志策略规划建议:

# 日志级别策略

组件 生产环境 测试环境
NameNode INFO DEBUG
DataNode INFO DEBUG
ResourceManager INFO DEBUG
NodeManager INFO DEBUG
HiveServer2 INFO DEBUG

# 日志保留策略

日志类型 保留时间 滚动策略
服务日志 30天 按天滚动
审计日志 180天 按天滚动
GC日志 7天 按大小滚动
应用日志 15天 按天滚动

# 日志脱敏策略

敏感信息 脱敏方式
密码 ******
IP地址 192.168.*.*
用户名 u***
路径 /path/***

# 日志采样策略

场景 采样率
正常日志 10%
错误日志 100%
审计日志 100%

# 日志归档策略

1. 热数据
最近7天数据
存储在Elasticsearch

2. 温数据
7-30天数据
存储在Elasticsearch

3. 冷数据
30天以上数据
归档到HDFS或对象存储

2.3 分析规划建议

日志分析规划建议:

# 日志分析场景

1. 故障排查
– 错误日志搜索
– 异常堆栈分析
– 时间线追踪

2. 性能分析
– 慢查询分析
– GC分析
– 资源使用分析

3. 安全审计
– 操作审计
– 访问审计
– 权限变更审计

4. 趋势分析
– 错误趋势
– 访问趋势
– 性能趋势

# 日志告警规则

告警名称 条件
ERROR日志激增 5分钟内ERROR > 100
FATAL日志 出现FATAL日志
认证失败 认证失败 > 10次/分钟
权限变更 检测到权限变更

# 日志仪表盘

1. 集群日志总览
– 日志量统计
– 错误分布
– 组件状态

2. 错误分析仪表盘
– 错误趋势
– 错误分类
– 错误详情

3. 审计分析仪表盘
– 操作统计
– 用户行为
– 敏感操作

生产环境建议:生产环境建议配置ELK集群高可用,合理设置日志保留和归档策略。建立日志分析规范,定期审查日志策略。学习交流加群风哥QQ113257174

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

3.1 日志配置实战

# 1. 配置Hadoop日志级别
$ cat > /bigdata/app/hadoop/etc/hadoop/log4j.properties << 'EOF' # Hadoop log4j配置 # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn # 根日志级别 hadoop.root.logger=INFO,RFA # 控制台输出 hadoop.log.console=INFO,console # 滚动文件输出 hadoop.log.file=hadoop.log hadoop.log.maxfilesize=256MB hadoop.log.maxbackupindex=20 # 日志格式 log4j.appender.RFA.layout=org.apache.log4j.PatternLayout log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n # 审计日志 hdfs.audit.logger=INFO,RFAAUDIT log4j.appender.RFAAUDIT=org.apache.log4j.RollingFileAppender log4j.appender.RFAAUDIT.File=${hadoop.log.dir}/hdfs-audit.log log4j.appender.RFAAUDIT.layout=org.apache.log4j.PatternLayout log4j.appender.RFAAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n # GC日志配置 export HADOOP_GC_LOG_OPTS="-Xloggc:${HADOOP_LOG_DIR}/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps" EOF # 2. 配置YARN日志聚合 $ cat >> /bigdata/app/hadoop/etc/hadoop/yarn-site.xml << 'EOF' yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
604800
yarn.log-aggregation.retain-check-interval-seconds
3600
yarn.nodemanager.remote-app-log-dir
/yarn/logs
yarn.nodemanager.remote-app-log-dir-suffix
logs
EOF

# 3. 配置日志滚动
$ cat > /etc/logrotate.d/hadoop << 'EOF' /bigdata/app/hadoop/logs/*.log { daily rotate 30 compress delaycompress missingok notifempty create 0644 root root sharedscripts postrotate /bin/kill -HUP `cat /var/run/hadoop/hadoop.pid 2>/dev/null` 2>/dev/null || true
endscript
}
EOF

# 4. 查看日志
# NameNode日志
$ tail -f /bigdata/app/hadoop/logs/hadoop-root-namenode-fgedu-node1.log

2026-04-08 10:00:00,000 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: NameNode startup completed.
2026-04-08 10:00:01,000 INFO org.apache.hadoop.hdfs.server.blockmanagement.BlockManager: Block pool storage policy set to HOT

# DataNode日志
$ tail -f /bigdata/app/hadoop/logs/hadoop-root-datanode-fgedu-node1.log

2026-04-08 10:00:00,000 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: DataNode startup completed.

# 审计日志
$ tail -f /bigdata/app/hadoop/logs/hdfs-audit.log

2026-04-08 10:00:00,000 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit: allowed=true ugi=root auth=SIMPLE ip=/192.168.1.100 cmd=create src=/user/fgedu/test.txt dst=null perm=root:supergroup:rw-r–r–

# 5. 日志分析命令
# 统计ERROR日志
$ grep -c “ERROR” /bigdata/app/hadoop/logs/hadoop-root-namenode-fgedu-node1.log

15

# 查看最近的ERROR
$ grep “ERROR” /bigdata/app/hadoop/logs/hadoop-root-namenode-fgedu-node1.log | tail -10

# 分析GC日志
$ jstat -gcutil $(jps | grep NameNode | awk ‘{print $1}’) 1000 10

S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT
0.00 25.00 45.23 65.12 95.34 90.12 15 0.234 0 0.000 0 0.000 0.234

3.2 ELK部署实战

# 1. 安装Elasticsearch
$ cd /bigdata/app
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.0-linux-x86_64.tar.gz
$ tar -xzf elasticsearch-8.11.0-linux-x86_64.tar.gz
$ ln -s elasticsearch-8.11.0 elasticsearch

# 配置Elasticsearch
$ cat > /bigdata/app/elasticsearch/config/elasticsearch.yml << 'EOF' cluster.name: fgedu-logs node.name: node-1 path.data: /bigdata/app/elasticsearch/data path.logs: /bigdata/app/elasticsearch/logs network.host: 0.0.0.0 http.port: 9200 discovery.seed_hosts: ["fgedu-node1", "fgedu-node2", "fgedu-node3"] cluster.initial_master_nodes: ["node-1"] xpack.security.enabled: false EOF # 启动Elasticsearch $ /bigdata/app/elasticsearch/bin/elasticsearch -d # 验证 $ curl http://localhost:9200 { "name" : "node-1", "cluster_name" : "fgedu-logs", "version" : { "number" : "8.11.0" } } # 2. 安装Logstash $ cd /bigdata/app $ wget https://artifacts.elastic.co/downloads/logstash/logstash-8.11.0-linux-x86_64.tar.gz $ tar -xzf logstash-8.11.0-linux-x86_64.tar.gz $ ln -s logstash-8.11.0 logstash # 配置Logstash $ cat > /bigdata/app/logstash/config/hadoop.conf << 'EOF' input { beats { port => 5044
}
}

filter {
grok {
match => { “message” => “%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVACLASS:class}: %{GREEDYDATA:msg}” }
}
date {
match => [ “timestamp”, “ISO8601” ]
}
}

output {
elasticsearch {
hosts => [“http://localhost:9200”]
index => “hadoop-logs-%{+YYYY.MM.dd}”
}
}
EOF

# 启动Logstash
$ /bigdata/app/logstash/bin/logstash -f /bigdata/app/logstash/config/hadoop.conf &

# 3. 安装Kibana
$ cd /bigdata/app
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-8.11.0-linux-x86_64.tar.gz
$ tar -xzf kibana-8.11.0-linux-x86_64.tar.gz
$ ln -s kibana-8.11.0 kibana

# 配置Kibana
$ cat > /bigdata/app/kibana/config/kibana.yml << 'EOF' server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://localhost:9200"] EOF # 启动Kibana $ /bigdata/app/kibana/bin/kibana & # 访问Kibana http://fgedu-node1:5601 # 4. 安装Filebeat $ cd /bigdata/app $ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.0-linux-x86_64.tar.gz $ tar -xzf filebeat-8.11.0-linux-x86_64.tar.gz $ ln -s filebeat-8.11.0 filebeat # 配置Filebeat $ cat > /bigdata/app/filebeat/filebeat.yml << 'EOF' filebeat.inputs: - type: log enabled: true paths: - /bigdata/app/hadoop/logs/*.log fields: type: hadoop fields_under_root: true - type: log enabled: true paths: - /bigdata/app/hadoop/logs/hdfs-audit.log fields: type: hdfs-audit fields_under_root: true output.logstash: hosts: ["fgedu-node1:5044"] EOF # 启动Filebeat $ /bigdata/app/filebeat/filebeat -c /bigdata/app/filebeat/filebeat.yml & # 5. 创建索引模式 # Kibana -> Stack Management -> Index Patterns
# 创建索引模式: hadoop-logs-*

3.3 日志分析实战

# 1. 日志查询示例

# 查询ERROR日志
GET hadoop-logs-*/_search
{
“query”: {
“match”: {
“level”: “ERROR”
}
},
“size”: 100
}

# 查询特定时间范围
GET hadoop-logs-*/_search
{
“query”: {
“range”: {
“@timestamp”: {
“gte”: “2026-04-08T00:00:00”,
“lte”: “2026-04-08T23:59:59”
}
}
}
}

# 聚合统计
GET hadoop-logs-*/_search
{
“size”: 0,
“aggs”: {
“log_levels”: {
“terms”: {
“field”: “level.keyword”
}
}
}
}

# 2. 日志分析脚本
$ cat > /tmp/analyze_logs.sh << 'EOF' #!/bin/bash # analyze_logs.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn LOG_DIR="/bigdata/app/hadoop/logs" echo "=== 日志分析报告 $(date) ===" # 统计各级别日志数量 echo "" echo "=== 日志级别统计 ===" for level in ERROR WARN INFO DEBUG; do count=$(grep -c "$level" $LOG_DIR/hadoop-*-namenode-*.log 2>/dev/null || echo 0)
echo “$level: $count”
done

# 统计错误类型
echo “”
echo “=== 错误类型TOP10 ===”
grep “ERROR” $LOG_DIR/hadoop-*-namenode-*.log 2>/dev/null | \
awk -F’: ‘ ‘{print $3}’ | sort | uniq -c | sort -rn | head -10

# 统计慢操作
echo “”
echo “=== 慢操作统计 ===”
grep “took” $LOG_DIR/hadoop-*-namenode-*.log 2>/dev/null | \
grep -E “took [0-9]{4,}ms” | head -10

# 审计日志分析
echo “”
echo “=== 审计日志统计 ===”
if [ -f “$LOG_DIR/hdfs-audit.log” ]; then
echo “操作类型统计:”
awk -F’\t’ ‘{print $5}’ $LOG_DIR/hdfs-audit.log | cut -d’=’ -f2 | sort | uniq -c | sort -rn | head -10
fi
EOF

$ chmod +x /tmp/analyze_logs.sh
$ /tmp/analyze_logs.sh

=== 日志分析报告 2026年 04月 08日 20:00:00 CST ===

=== 日志级别统计 ===
ERROR: 15
WARN: 234
INFO: 56789
DEBUG: 0

=== 错误类型TOP10 ===
15 org.apache.hadoop.hdfs.server.blockmanagement.BlockManager
10 org.apache.hadoop.hdfs.server.namenode.NameNode
5 org.apache.hadoop.ipc.Server

=== 慢操作统计 ===
2026-04-08 10:00:00,000 INFO … took 5678ms
2026-04-08 10:01:00,000 INFO … took 4567ms

=== 审计日志统计 ===
操作类型统计:
1234 cmd=open
567 cmd=create
234 cmd=delete

风哥提示:日志分析是运维工作的重要技能。建议掌握常用的日志分析命令和工具,建立日志分析规范,定期分析日志发现问题。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 故障排查案例

# 案例:NameNode启动失败排查

# 1. 问题现象
NameNode无法启动,日志显示错误

# 2. 查看日志
$ tail -100 /bigdata/app/hadoop/logs/hadoop-root-namenode-fgedu-node1.log

2026-04-08 10:00:00,000 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
java.io.IOException: NameNode is not formatted.

# 3. 分析原因
日志显示NameNode未格式化

# 4. 解决方案
# 格式化NameNode
$ hdfs namenode -format

# 重新启动
$ hdfs –daemon start namenode

# 5. 验证
$ jps | grep NameNode

12345 NameNode

# 案例:DataNode无法连接NameNode

# 1. 查看DataNode日志
$ tail -100 /bigdata/app/hadoop/logs/hadoop-root-datanode-fgedu-node1.log

2026-04-08 10:00:00,000 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.net.ConnectException: Call From fgedu-node1 to fgedu-node1:9000 failed on connection exception

# 2. 检查网络
$ telnet fgedu-node1 9000

telnet: connect to address 192.168.1.100: Connection refused

# 3. 检查NameNode状态
$ jps | grep NameNode

# NameNode未运行

# 4. 解决方案
# 启动NameNode
$ hdfs –daemon start namenode

# 重启DataNode
$ hdfs –daemon stop datanode
$ hdfs –daemon start datanode

4.2 审计分析案例

# 案例:异常操作审计

# 1. 需求:查找某用户的所有删除操作

# 2. 查询审计日志
$ grep “ugi=fgedu” /bigdata/app/hadoop/logs/hdfs-audit.log | grep “cmd=delete”

2026-04-08 10:00:00,000 INFO … ugi=fgedu … cmd=delete src=/user/fgedu/test.txt …

# 3. 统计用户操作
$ cat > /tmp/audit_analysis.sh << 'EOF' #!/bin/bash # audit_analysis.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn AUDIT_LOG="/bigdata/app/hadoop/logs/hdfs-audit.log" echo "=== 审计分析报告 $(date) ===" # 用户操作统计 echo "" echo "=== 用户操作统计 ===" awk -F'\t' '{ for(i=1;i<=NF;i++) { if($i ~ /^ugi=/) print $i } }' $AUDIT_LOG | cut -d'=' -f2 | sort | uniq -c | sort -rn | head -10 # 敏感操作统计 echo "" echo "=== 敏感操作统计 ===" grep -E "cmd=delete|cmd=setOwner|cmd=setPermission" $AUDIT_LOG | \ awk -F'\t' '{ for(i=1;i<=NF;i++) { if($i ~ /^cmd=/) print $i } }' | sort | uniq -c # 异常访问 echo "" echo "=== 异常访问(allowed=false) ===" grep "allowed=false" $AUDIT_LOG | head -10 EOF $ chmod +x /tmp/audit_analysis.sh $ /tmp/audit_analysis.sh === 审计分析报告 2026年 04月 08日 20:30:00 CST === === 用户操作统计 === 5678 root 2345 fgedu 123 hive === 敏感操作统计 === 234 cmd=delete 45 cmd=setOwner 12 cmd=setPermission === 异常访问(allowed=false) === 2026-04-08 10:00:00,000 INFO ... allowed=false ... ugi=fgedu ... cmd=open src=/user/root/secret.txt

4.3 常见问题处理

4.3.1 日志文件过大

# 问题现象:日志文件过大

# 排查步骤
$ ls -lh /bigdata/app/hadoop/logs/*.log

-rw-r–r– 1 root root 5.0G Apr 8 10:00 hadoop-root-namenode-fgedu-node1.log

# 解决方案
# 1. 配置日志滚动
$ cat >> /bigdata/app/hadoop/etc/hadoop/log4j.properties << 'EOF' log4j.appender.RFA.MaxFileSize=256MB log4j.appender.RFA.MaxBackupIndex=20 EOF # 2. 手动压缩旧日志 $ gzip /bigdata/app/hadoop/logs/hadoop-root-namenode-fgedu-node1.log.old # 3. 删除过期日志 $ find /bigdata/app/hadoop/logs -name "*.log.*" -mtime +30 -delete

4.3.2 日志丢失

# 问题现象:日志丢失

# 排查步骤
# 1. 检查磁盘空间
$ df -h /bigdata/app/hadoop/logs

# 2. 检查日志配置
$ cat /bigdata/app/hadoop/etc/hadoop/log4j.properties | grep MaxBackupIndex

# 解决方案
# 1. 扩展存储空间
# 2. 增加保留数量
log4j.appender.RFA.MaxBackupIndex=50

# 3. 配置日志聚合
yarn.log-aggregation-enable=true

Part05-风哥经验总结与分享

5.1 日志管理最佳实践

日志管理最佳实践建议:

# 日志管理最佳实践
1. 建立统一的日志规范
2. 配置合理的日志级别
3. 实施日志集中管理
4. 定期分析日志
5. 做好日志备份

5.2 使用建议

使用建议:

日志使用建议:

  • 日志级别要合理
  • 日志格式要规范
  • 敏感信息要脱敏
  • 日志要定期归档

5.3 工具推荐

日志工具推荐:

  • ELK Stack:企业级日志管理
  • grep/awk:命令行分析
  • 自定义脚本:特定需求分析
  • Kibana:可视化分析
风哥提示:日志是排查问题的重要依据。建议建立完善的日志管理体系,掌握常用的日志分析技巧,定期分析日志发现潜在问题。from bigdata视频:www.itpux.com

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

联系我们

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

微信号:itpux-com

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