Author: shv
Date: Fri Feb  4 03:38:00 2011
New Revision: 1067077

URL: http://svn.apache.org/viewvc?rev=1067077&view=rev
Log:
MAPREDUCE-2188. The new API MultithreadedMapper doesn't initialize 
RecordReader. Contributed by Owen O'Malley.

Modified:
    hadoop/mapreduce/trunk/CHANGES.txt
    
hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapreduce/lib/map/MultithreadedMapper.java

Modified: hadoop/mapreduce/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/CHANGES.txt?rev=1067077&r1=1067076&r2=1067077&view=diff
==============================================================================
--- hadoop/mapreduce/trunk/CHANGES.txt (original)
+++ hadoop/mapreduce/trunk/CHANGES.txt Fri Feb  4 03:38:00 2011
@@ -535,6 +535,9 @@ Release 0.22.0 - Unreleased
     MAPREDUCE-2077. Resolve name clash in the deprecated 
     o.a.h.util.MemoryCalculatorPlugin (Luke Lu via shv)
 
+    MAPREDUCE-2188. The new API MultithreadedMapper doesn't initialize
+    RecordReader. (Owen O'Malley via shv)
+
 Release 0.21.1 - Unreleased
 
   NEW FEATURES

Modified: 
hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapreduce/lib/map/MultithreadedMapper.java
URL: 
http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapreduce/lib/map/MultithreadedMapper.java?rev=1067077&r1=1067076&r2=1067077&view=diff
==============================================================================
--- 
hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapreduce/lib/map/MultithreadedMapper.java
 (original)
+++ 
hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapreduce/lib/map/MultithreadedMapper.java
 Fri Feb  4 03:38:00 2011
@@ -246,6 +246,7 @@ public class MultithreadedMapper<K1, V1,
     private Mapper<K1,V1,K2,V2> mapper;
     private Context subcontext;
     private Throwable throwable;
+    private RecordReader<K1,V1> reader = new SubMapRecordReader();
 
     MapRunner(Context context) throws IOException, InterruptedException {
       mapper = ReflectionUtils.newInstance(mapClass, 
@@ -253,22 +254,20 @@ public class MultithreadedMapper<K1, V1,
       MapContext<K1, V1, K2, V2> mapContext = 
         new MapContextImpl<K1, V1, K2, V2>(outer.getConfiguration(), 
                                            outer.getTaskAttemptID(),
-                                           new SubMapRecordReader(),
+                                           reader,
                                            new SubMapRecordWriter(), 
                                            context.getOutputCommitter(),
                                            new SubMapStatusReporter(),
                                            outer.getInputSplit());
       subcontext = new WrappedMapper<K1, V1, K2, 
V2>().getMapContext(mapContext);
-    }
-
-    public Throwable getThrowable() {
-      return throwable;
+      reader.initialize(context.getInputSplit(), context);
     }
 
     @Override
     public void run() {
       try {
         mapper.run(subcontext);
+        reader.close();
       } catch (Throwable ie) {
         throwable = ie;
       }


Reply via email to