在 CentOS 上查看 HDFS 日志,通常取决于你是 Hadoop 管理员还是普通用户,以及 HDFS 是如何安装的(CDH / HDP / 原生 Apache Hadoop)。下面按常见场景说明。
默认日志目录:
$HADOOP_HOME/logs
常见日志文件:
$HADOOP_HOME/logs/
├── hadoop-root-namenode-<hostname>.log
├── hadoop-root-datanode-<hostname>.log
├── hadoop-root-secondarynamenode-<hostname>.log
├── yarn-root-resourcemanager-<hostname>.log
└── userlogs/
示例:
tail -f $HADOOP_HOME/logs/hadoop-root-namenode-node1.log
日志目录一般在:
/var/log/hadoop-hdfs/
例如:
/var/log/hadoop-hdfs/hadoop-cmf-hdfs-NAMENODE-*.log.out
查看 NameNode 日志:
tail -100f /var/log/hadoop-hdfs/hadoop-cmf-hdfs-NAMENODE-*.log.out
/var/log/hadoop/
如果 HDFS 是用 systemd 管理的:
journalctl -u hadoop-hdfs-namenode
journalctl -u hadoop-hdfs-datanode
实时查看:
journalctl -u hadoop-hdfs-namenode -f
http://<namenode-ip>:9870
(Hadoop 3.x)
50070
在页面中点击:
Utilities → Logs
记录所有 HDFS 操作(读、写、删):
$HADOOP_HOME/logs/hadoop-root-namenode-*.log
搜索示例:
grep "mkdir" $HADOOP_HOME/logs/hadoop-root-namenode-*.log
如果是 HDFS 上的作业:
yarn logs -applicationId application_xxxx
# 查看 NameNode 是否异常
tail -200 $HADOOP_HOME/logs/hadoop-root-namenode-*.log | grep ERROR
# 查看 DataNode 是否失联
tail -200 $HADOOP_HOME/logs/hadoop-root-datanode-*.log | grep WARN
which hdfs
echo $HADOOP_HOME
ps -ef | grep namenode
如果你能告诉我:
我可以给你更精确的命令。