Ubuntu环境下查看Hadoop日志的方法
Hadoop的系统服务(如NameNode、DataNode、ResourceManager、NodeManager等)日志默认存储在$HADOOP_HOME/logs目录下($HADOOP_HOME为Hadoop安装根目录)。日志文件命名遵循<组件前缀>-<用户名>-<组件名称>-<主机名>.log的格式,例如:
hadoop-hadoop-namenode-ubuntu.log(hadoop为用户名,ubuntu为主机名)hadoop-hadoop-datanode-ubuntu.logyarn-hadoop-resourcemanager-ubuntu.log(YARN组件日志以yarn-为前缀)yarn-hadoop-nodemanager-ubuntu.logtail -f命令跟踪日志文件的新增内容,适用于排查实时问题(如服务启动失败、任务异常)。tail -f $HADOOP_HOME/logs/hadoop-hadoop-namenode-ubuntu.loghead -n命令查看日志开头的内容,快速了解服务初始化信息。head -n 50 $HADOOP_HOME/logs/yarn-hadoop-resourcemanager-ubuntu.loggrep命令过滤日志中的关键字(如“ERROR”“Exception”),快速定位问题根源。grep -i "error" $HADOOP_HOME/logs/hadoop-hadoop-datanode-ubuntu.log(-i表示忽略大小写)应用程序日志分为历史作业日志和Container运行日志,需通过YARN命令或Web界面查看。
历史作业日志存储在HDFS的指定目录(默认路径由yarn-site.xml中的yarn.nodemanager.remote-app-log-dir配置,默认为/tmp/hadoop-yarn/staging/history/done),可通过以下命令查看:
yarn application -list命令查看所有运行或完成的作业,获取Application ID(如application_1715341234567_0001)。yarn application -list -appStates ALL(-appStates可筛选作业状态,如FINISHED表示已完成)yarn logs -applicationId <Application_ID>命令获取指定作业的合并日志(包含Map、Reduce任务的输出)。yarn logs -applicationId application_1715341234567_0001YARN提供了Web界面,可直观查看应用程序日志:
http://<ResourceManager主机名>:8088(如http://ubuntu:8088)。若需调整日志输出路径、级别或切割策略,可修改以下配置文件:
$HADOOP_HOME/etc/hadoop/yarn-env.sh(YARN组件)或$HADOOP_HOME/etc/hadoop/hadoop-env.sh(HDFS组件),修改YARN_LOG_DIR(YARN日志目录)或HADOOP_LOG_DIR(HDFS日志目录)变量。export YARN_LOG_DIR=/var/log/hadoop/yarn(需提前创建目录并赋予权限)$HADOOP_HOME/etc/hadoop/log4j.properties文件,调整RollingFileAppender的MaxFileSize(单日志文件最大大小,如256MB)和MaxBackupIndex(保留的旧日志文件数量,如20)参数。log4j.appender.RMSUMMARY.MaxFileSize=256MB(限制单个日志文件不超过256MB)通过上述方法,可全面查看Hadoop系统服务日志和应用程序日志,快速定位集群运行中的问题(如服务无法启动、任务失败等)。