HDFS的日志文件默认存储在HDFS文件系统的特定路径下(如/var/log/hadoop/hdfs/或/logs目录),可使用Hadoop提供的fs命令(或dfs命令,两者等效)进行查看。常用操作如下:
hadoop fs -ls命令查看HDFS中日志目录的内容(如/var/log/hadoop/hdfs/),示例:hadoop fs -ls /var/log/hadoop/hdfs/
输出会显示该目录下的所有日志文件(如hadoop-hdfs-namenode-<hostname>.log、hadoop-hdfs-datanode-<hostname>.log)及文件大小、修改时间等信息。hadoop fs -cat命令查看指定日志文件的完整内容(如NameNode日志),示例:hadoop fs -cat /var/log/hadoop/hdfs/hadoop-hdfs-namenode-<hostname>.log
若日志文件较大,可使用hadoop fs -tail命令查看文件末尾的若干行(实时更新),示例:hadoop fs -tail -n 100 /var/log/hadoop/hdfs/hadoop-hdfs-namenode-<hostname>.log # 查看最后100行
该命令适合实时监控日志输出(类似tail -f的效果)。HDFS的日志默认也会存储在Hadoop安装目录的logs子目录中(路径由$HADOOP_HOME环境变量决定,如/usr/local/hadoop/logs/或/opt/hadoop/logs/)。可通过以下步骤查看:
cd $HADOOP_HOME/logs
hadoop-<username>-namenode-<hostname>.loghadoop-<username>-datanode-<hostname>.loghadoop-<username>-secondarynamenode-<hostname>.logtail、cat、less等命令查看,示例:tail -f hadoop-hdfs-namenode-<hostname>.log # 实时查看NameNode日志
less hadoop-hdfs-datanode-<hostname>.log # 分页查看DataNode日志
这种方式适合本地快速查看,无需通过网络访问HDFS。HDFS提供了Web管理界面,可直接在浏览器中查看NameNode和SecondaryNameNode的日志(需集群已开启Web UI服务,默认端口为50070或8088,取决于Hadoop版本):
http://<namenode_hostname>:50070(或http://<namenode_hostname>:8088),进入HDFS集群管理页面。/var/log/hadoop/hdfs/hadoop-hdfs-namenode-<hostname>.log),点击“Browse”即可查看日志内容。hadoop-env.sh中的HADOOP_LOG_DIR参数),需根据实际配置调整查看路径。hadoop用户或root权限,若遇到权限不足,可使用sudo命令(如sudo hadoop fs -cat /var/log/hadoop/hdfs/hadoop-hdfs-namenode-<hostname>.log)。