Hadoop2.x 關於日志文件位置


  查看日志是發現Hadoop問題和解決Hadoop問題的第一步。

  開始我不知道該去哪找日志,后來我發現在我啟動節點的時候,有打印信息以及明確告訴了日志寫在哪。

[root@master hadoop]# ./sbin/start-dfs.sh

master.hadoop: starting namenode, logging to /root/hadoop/logs/hadoop-root-namenode-master.hadoop.out

slave2.hadoop: starting datanode, logging to /root/hadoop/logs/hadoop-root-datanode-slave2.hadoop.out

slave1.hadoop: starting datanode, logging to /root/hadoop/logs/hadoop-root-datanode-slave1.hadoop.out

Starting secondary namenodes [master.hadoop]

master.hadoop: starting secondarynamenode, logging to /root/hadoop/logs/hadoop-root-secondarynamenode-master.hadoop.out

 

[root@master hadoop]# ./sbin/start-yarn.sh

starting yarn daemons

starting resourcemanager, logging to /root/hadoop/logs/yarn-root-resourcemanager-master.hadoop.out

slave1.hadoop: starting nodemanager, logging to /root/hadoop/logs/yarn-root-nodemanager-slave1.hadoop.out

slave2.hadoop: starting nodemanager, logging to /root/hadoop/logs/yarn-root-nodemanager-slave2.hadoop.out

  

  NameNode:Hadoop目錄下的logs目錄下/hadoop-*-namenode-主節點.out。

  DataNode:Hadoop目錄下的logs目錄下/hadoop-*-datanode-從節點.out。

  secondarynamenode:Hadoop目錄下的logs目錄下/hadoop-*-secondarynamenode-主節點.out

  resourcemanager:Hadoop目錄下的logs目錄下/yarn-*-resourcemanager-主節點.out

  nodemanager:Hadoop目錄下的logs目錄下/yarn-*-nodemanager-從節點.out

 


  hadoop存在多種日志文件,其中master上的日志文件記錄全面信息,包括slave上的jobtracker與datanode也會將錯誤信息寫到master中。而slave中的日志主要記錄完成的task任務信息。

  默認情況下,hadoop日志保存在HADOOP_INSTALL/logs目錄,但一般情況下建議重新指定路徑,常用的是/var/log/hadoop,通過在hadoop-env.sh中增加以下一行來實現:
  export HADOOP_LOG_DIR=/var/log/hadoop

 

  一、master服務器上的日志

  1、保存在master服務器上的日志有以下四類。注意,tasktracker與datanode上的部分日志會保存在master中,方便出現問題時定位至具體服務器。

  2、master中主要有2種日志,分別以log與out作后綴,其中每一個守護進程都會產生這2個日志,如jobtracker/ namenode/ tasktracker/ datanode均會分別產生這2個日志文件。這2個文件均是每天生成一個。

  3、log日志文件通過log4j記錄的,大部分應用程序的日志消息都寫到該日志文件中,故障診斷的首要步驟即為檢查該文件。【此日志文件最重要】
out日志文件記錄標准輸出和標准錯誤日志,由於大多日志均使用log4j輸出至log日志文件中,因此此文件很小或者為空。系統僅保留最新的5個日志。

  4、這2類日志的命名均包含用戶名稱、守護進程名稱和本地主機名等信息。


  二、slave服務器上的日志

  (一)tasktracker相關日志
  每個tasktracker子進程都用log4j產生以下4個日志文件,這些日志記錄了各個task的日志輸出。
  1、日志文件(syslog)
  通過Log4j記錄的日志

  2、保存發到標准輸出數據的文件(stdout)

  3、保存標准錯誤的文件(stderr)

  4、log.index

  (1)tasktracker會記錄它所運行的所有task的日志,默認目錄為$HADOOP_LOG_DIR/userlogs。且每個job單獨生成一個目錄,如下:
  [root@slave1 userlogs]$ pwd
  /root/hadoop/logs/userlogs
  root@slave1 userlogs]$ ls
  job_201502271057_0243  job_201502271057_0245  job_201502271057_0247  job_201502271057_0250  job_201502271057_0253
  job_201502271057_0244  job_201502271057_0246  job_201502271057_0249  job_201502271057_0251  job_201502271057_0255

  (2)進入具體目錄,內容如下
  [root@slave1 job_201502271057_0243]$ ll
  total 16
  lrwxrwxrwx 1 root root  95 Feb 28 15:06 attempt_201502271057_0243_m_000000_0 ->   /mnt/tmphadoop/mapred/local/userlogs/job_201502271057_0243/attempt_201502271057_0243_m_000000_0
  lrwxrwxrwx 1 root root  95 Feb 28 15:06 attempt_201502271057_0243_m_000001_0 ->   /mnt/tmphadoop/mapred/local/userlogs/job_201502271057_0243/attempt_201502271057_0243_m_000001_0
  lrwxrwxrwx 1 root root  95 Feb 28 15:06 attempt_201502271057_0243_m_000002_0 ->   /mnt/tmphadoop/mapred/local/userlogs/job_201502271057_0243/attempt_201502271057_0243_m_000002_0
  -rw-r----- 1 root root 502 Feb 28 15:06 job-acls.xml
  由此可見,這個tasktracker運行了3個job_201502271057_0243的task,這個task的日志目錄只是一個鏈接,它具體鏈接至tmphadoop目錄下。

  (3)進入實際目錄,可以發現以下4個日志文件
  [root@slave1 userlogs]$ cd /mnt/tmphadoop/mapred/local/userlogs/job_201502271057_0243/attempt_201502271057_0243_m_000000_0
  [root@slave1 attempt_201502271057_0243_m_000000_0]$ ll
  total 36
  -rw-r--r-- 1 root root   154 Feb 28 15:06 log.index
  -rw-rw-r-- 1 root root     0 Feb 28 15:06 stderr
  -rw-rw-r-- 1 root root     0 Feb 28 15:06 stdout
  -rw-rw-r-- 1 root root 30248 Feb 28 15:06 syslog

  (二)datanode相關日志

  三、審計日志
  這個日志記錄所有HDFS請求,默認是關閉的。一般寫入namenode的日志中
  在log4j.properties屬性文件中設置以下選項:
  # All audit events are logged at INFO level
  log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=WARN
  由於審計信息在INFO級別實現的,因此將WARN改為info即可開啟審計。

  四、MR作業歷史日志
  記錄已經完成的任務,放在HADOOP_LOG_DIR/histroy中。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM