You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cd...@apache.org on 2009/03/26 10:14:57 UTC

svn commit: r758567 - in /hadoop/core/trunk: CHANGES.txt src/mapred/org/apache/hadoop/mapred/HistoryViewer.java

Author: cdouglas
Date: Thu Mar 26 09:14:52 2009
New Revision: 758567

URL: http://svn.apache.org/viewvc?rev=758567&view=rev
Log:
HADOOP-5149. Modify HistoryViewer to ignore unfamiliar files in the log
directory. Contributed by Hong Tang

Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/HistoryViewer.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=758567&r1=758566&r2=758567&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Thu Mar 26 09:14:52 2009
@@ -327,6 +327,9 @@
     HADOOP-5561. Add javadoc.maxmemory parameter to build, preventing OOM
     exceptions from javadoc-dev. (Jacob Homan via cdouglas)
 
+    HADOOP-5149. Modify HistoryViewer to ignore unfamiliar files in the log
+    directory. (Hong Tang via cdouglas)
+
 Release 0.20.0 - Unreleased
 
   INCOMPATIBLE CHANGES

Modified: hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/HistoryViewer.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/HistoryViewer.java?rev=758567&r1=758566&r2=758567&view=diff
==============================================================================
--- hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/HistoryViewer.java (original)
+++ hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/HistoryViewer.java Thu Mar 26 09:14:52 2009
@@ -32,8 +32,14 @@
 import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.PathFilter;
-import org.apache.hadoop.mapred.DefaultJobHistoryParser.*;
-import org.apache.hadoop.mapred.JobHistory.*;
+import org.apache.hadoop.mapred.DefaultJobHistoryParser.FailedOnNodesFilter;
+import org.apache.hadoop.mapred.DefaultJobHistoryParser.KilledOnNodesFilter;
+import org.apache.hadoop.mapred.DefaultJobHistoryParser.NodesFilter;
+import org.apache.hadoop.mapred.JobHistory.JobInfo;
+import org.apache.hadoop.mapred.JobHistory.Keys;
+import org.apache.hadoop.mapred.JobHistory.ReduceAttempt;
+import org.apache.hadoop.mapred.JobHistory.TaskAttempt;
+import org.apache.hadoop.mapred.JobHistory.Values;
 import org.apache.hadoop.util.StringUtils;
 
 /**
@@ -72,18 +78,29 @@
       }
       Path[] jobFiles = FileUtil.stat2Paths(fs.listStatus(historyLogDir,
                                                           jobLogFileFilter));
-      if (jobFiles.length == 0) {
-        throw new IOException("Not a valid history directory " 
-                              + historyLogDir.toString());
+      boolean initialized = false;
+      for (Path p : jobFiles) {
+        jobLogFile = p.toString();
+
+        String[] jobDetails =
+            JobInfo.decodeJobHistoryFileName(p.getName()).split("_");
+        if (jobDetails.length < 5) {
+          // NOT a valid name
+          System.err.println("Ignore unrecognized file: " + p.getName());
+          continue;
+        }
+        trackerHostName = jobDetails[0];
+        trackerStartTime = jobDetails[1];
+        jobId = jobDetails[2] + "_" + jobDetails[3] + "_" + jobDetails[4];
+        job = new JobHistory.JobInfo(jobId);
+        DefaultJobHistoryParser.parseJobTasks(jobLogFile, job, fs);
+        initialized = true;
+        break;
+      }
+      if (!initialized) {
+        throw new IOException("No valid history found in directory: "
+            + historyLogDir.toString());
       }
-      jobLogFile = jobFiles[0].toString();
-      String[] jobDetails = 
-          JobInfo.decodeJobHistoryFileName(jobFiles[0].getName()).split("_");
-      trackerHostName = jobDetails[0];
-      trackerStartTime = jobDetails[1];
-      jobId = jobDetails[2] + "_" + jobDetails[3] + "_" + jobDetails[4];
-      job = new JobHistory.JobInfo(jobId); 
-      DefaultJobHistoryParser.parseJobTasks(jobFiles[0].toString(), job, fs);
     } catch(Exception e) {
       throw new IOException("Not able to initialize History viewer", e);
     }