فهرست منبع

HADOOP-251. Make tasks processes tolerant of failed progress reports to their parent process. Contributed by Owen.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@409265 13f79535-47bb-0310-9956-ffa450edef68
Doug Cutting 19 سال پیش
والد
کامیت
d04427d63f
2فایلهای تغییر یافته به همراه13 افزوده شده و 3 حذف شده
  1. 3 0
      CHANGES.txt
  2. 10 3
      src/java/org/apache/hadoop/mapred/Task.java

+ 3 - 0
CHANGES.txt

@@ -62,6 +62,9 @@ Trunk (unreleased)
     reduce nodes by performing multiple transfers in parallel, each on
     a separate socket.  (Sameer Paranjpye via cutting)
 
+17. HADOOP-251.  Fix task processes to be tolerant of failed progress
+    reports to their parent process.  (omalley via cutting)
+
 
 Release 0.2.1 - 2006-05-12
 

+ 10 - 3
src/java/org/apache/hadoop/mapred/Task.java

@@ -21,9 +21,13 @@ import org.apache.hadoop.conf.*;
 import org.apache.hadoop.util.*;
 
 import java.io.*;
+import java.util.logging.Logger;
 
 /** Base class for tasks. */
 abstract class Task implements Writable, Configurable {
+  private static final Logger LOG =
+    LogFormatter.getLogger("org.apache.hadoop.mapred.TaskRunner");
+
   ////////////////////////////////////////////
   // Fields
   ////////////////////////////////////////////
@@ -101,15 +105,18 @@ abstract class Task implements Writable, Configurable {
     reportProgress(umbilical);
   }
 
-  public void reportProgress(TaskUmbilicalProtocol umbilical)
-    throws IOException {
+  public void reportProgress(TaskUmbilicalProtocol umbilical) {
     long now = System.currentTimeMillis();
     if (now > nextProgressTime)  {
       synchronized (this) {
         nextProgressTime = now + PROGRESS_INTERVAL;
         float progress = taskProgress.get();
         String status = taskProgress.toString();
-        umbilical.progress(getTaskId(), progress, status);
+        try {
+          umbilical.progress(getTaskId(), progress, status);
+        } catch (IOException ie) {
+          LOG.warning(StringUtils.stringifyException(ie));
+        }
       }
     }
   }