Hadoop在Linux如何处理日志
导读:Linux下Hadoop日志处理全流程 一 日志位置与快速查看 守护进程日志:默认位于**$HADOOP_HOME/logs/**,常见文件命名如:hadoop--namenode-.log、hadoop--datanode-.log、y...
Linux下Hadoop日志处理全流程
一 日志位置与快速查看
- 守护进程日志:默认位于**$HADOOP_HOME/logs/**,常见文件命名如:hadoop--namenode-.log、hadoop--datanode-.log、yarn--resourcemanager-.log 等。
- 快速排查常用命令:
- 实时查看:
tail -f $HADOOP_HOME/logs/*.log - 关键字检索:
grep -i "error\|exception\|fail" $HADOOP_HOME/logs/*.log - 进程存活检查:
jps(确认 NameNode、DataNode、ResourceManager、NodeManager 是否在) - 作业日志聚合查看:
yarn logs -applicationId < app_id> - Web 界面:访问 NameNode 与 ResourceManager 的 HTTP 页面查看状态与容器日志入口。
- 实时查看:
二 日志采集与集中化
- 采集与传输:使用 Flume 或 Logstash 将各节点日志统一采集并发送到集中式存储(如 Elasticsearch、HDFS)。
- 日志聚集:启用 YARN 日志聚集(Log Aggregation),将 ApplicationMaster 与容器日志聚合到 HDFS,便于统一检索与留存。
- 存储与格式:长期留存可落 HDFS;结构化数据可入 关系型数据库,半结构化可入 MongoDB;分析友好格式建议 JSON/Parquet/ORC。
- 检索与可视化:检索分析用 Elasticsearch + Logstash + Kibana(ELK) 或 Solr;指标与可视化用 Grafana(可对接 Prometheus)。
三 日志分析与定位实战
- 命令行三板斧:
- 首屏定位:
tail -100 < logfile> | grep -i error - 统计频次:
grep -i "timeout" app.log | wc -l - 上下文查看:
sed -n '1000,1100p' app.log
- 首屏定位:
- 作业维度:用
yarn logs -applicationId < app_id>直接拉取该作业所有容器日志,结合 ResourceManager Web UI 定位失败的 AM/Container。 - 系统维度:配合
top、iostat、vmstat等排查资源瓶颈;必要时用strace捕捉异常瞬间系统调用。 - 进程维度:用
jps确认组件是否存活,缺失则优先检查对应服务日志与端口占用。
四 日志轮转 清理与生命周期管理
- 日志轮转:使用 logrotate 按日/大小切割,保留策略如7–30天;压缩归档采用 gzip/snappy 降低占用。
- 清理策略:对历史与已轮转文件设置自动删除;避免直接
rm -rf正在写入的日志,优先logrotate或先停止写入再清理。 - 容量告警:对日志目录(如 $HADOOP_HOME/logs、HDFS 聚合目录)设置磁盘阈值告警,防止因日志暴涨导致 磁盘满/进入安全模式。
- 生命周期:明确“保留期限—归档时机—删除节点”,以策略驱动自动化管理。
五 日志级别调整与生效方式
- 配置文件路径:编辑 $HADOOP_HOME/etc/hadoop/log4j.properties(或发行版路径 /etc/hadoop/conf/log4j.properties)。
- 全局级别:调整
log4j.rootLogger=INFO, console(可选 DEBUG/WARN/ERROR 等)。 - 组件级别:按包名细化,例如
log4j.logger.org.apache.hadoop.hdfs.server.namenode=WARN。 - 使配置生效:
- 方式一(常规):重启对应服务(如
stop-dfs.sh & & start-dfs.sh、stop-yarn.sh & & start-yarn.sh)。 - 方式二(系统服务):
systemctl restart hadoop-hdfs-namenode等。
- 方式一(常规):重启对应服务(如
- 验证:观察目标日志文件是否出现更详细(或更少)输出。
- 风险提示:生产环境谨慎使用 DEBUG,以免磁盘 I/O 与网络带宽激增。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Hadoop在Linux如何处理日志
本文地址: https://pptw.com/jishu/748981.html
