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 om...@apache.org on 2009/03/31 18:30:41 UTC
svn commit: r760514 - in /hadoop/core/branches/branch-0.20: ./ CHANGES.txt
src/mapred/org/apache/hadoop/mapred/LocalJobRunner.java
Author: omalley
Date: Tue Mar 31 16:30:41 2009
New Revision: 760514
URL: http://svn.apache.org/viewvc?rev=760514&view=rev
Log:
HADOOP-5576. Fix LocalRunner to work with the new context object API in
mapreduce. (Tom White via omalley)
Modified:
hadoop/core/branches/branch-0.20/ (props changed)
hadoop/core/branches/branch-0.20/CHANGES.txt (contents, props changed)
hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/LocalJobRunner.java
Propchange: hadoop/core/branches/branch-0.20/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 31 16:30:41 2009
@@ -1,2 +1,2 @@
/hadoop/core/branches/branch-0.19:713112
-/hadoop/core/trunk:727001,727117,727191,727212,727217,727228,727255,727869,728187,729052,729987,732385,732572,732613,732777,732838,732869,733887,734870,734916,736426,738328,738697,740077,740157,741703,741762,743745,743816,743892,744894,745180,746010,746206,746227,746233,746274,746338,746902-746903,746925,746944,746968,746970,747279,747289,747802,748084,748090,748783,749262,749318,749863,750533,752073,752609,752834,752836,752913,752932,753112-753113,753346,754645,754847,754927,755035,755226,755348,755370,755418,755426,755790,755905,755938,755960,755986,755998,756352,757448,757624,757849,758156,759398,759932
+/hadoop/core/trunk:727001,727117,727191,727212,727217,727228,727255,727869,728187,729052,729987,732385,732572,732613,732777,732838,732869,733887,734870,734916,736426,738328,738697,740077,740157,741703,741762,743745,743816,743892,744894,745180,746010,746206,746227,746233,746274,746338,746902-746903,746925,746944,746968,746970,747279,747289,747802,748084,748090,748783,749262,749318,749863,750533,752073,752609,752834,752836,752913,752932,753112-753113,753346,754645,754847,754927,755035,755226,755348,755370,755418,755426,755790,755905,755938,755960,755986,755998,756352,757448,757624,757849,758156,759398,759932,760502
Modified: hadoop/core/branches/branch-0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.20/CHANGES.txt?rev=760514&r1=760513&r2=760514&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.20/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.20/CHANGES.txt Tue Mar 31 16:30:41 2009
@@ -821,6 +821,9 @@
if there is a user request pending to kill the task and the TT reported
the state as SUCCESS. (Amareshwari Sriramadasu via ddas)
+ HADOOP-5576. Fix LocalRunner to work with the new context object API in
+ mapreduce. (Tom White via omalley)
+
Release 0.19.2 - Unreleased
BUG FIXES
Propchange: hadoop/core/branches/branch-0.20/CHANGES.txt
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 31 16:30:41 2009
@@ -1,3 +1,3 @@
/hadoop/core/branches/branch-0.18/CHANGES.txt:727226
/hadoop/core/branches/branch-0.19/CHANGES.txt:713112
-/hadoop/core/trunk/CHANGES.txt:727001,727117,727191,727212,727228,727255,727869,728187,729052,729987,732385,732572,732613,732777,732838,732869,733887,734870,734916,735082,736426,738602,738697,739416,740077,740157,741703,741762,743296,743745,743816,743892,744894,745180,745268,746010,746193,746206,746227,746233,746274,746902-746903,746925,746944,746968,746970,747279,747289,747802,748084,748090,748783,749262,749318,749863,750533,752073,752514,752555,752590,752609,752834,752836,752913,752932,753112-753113,753346,754645,754847,754927,755035,755226,755348,755370,755418,755426,755790,755905,755938,755986,755998,756352,757448,757624,757849,758156,759398,759932
+/hadoop/core/trunk/CHANGES.txt:727001,727117,727191,727212,727228,727255,727869,728187,729052,729987,732385,732572,732613,732777,732838,732869,733887,734870,734916,735082,736426,738602,738697,739416,740077,740157,741703,741762,743296,743745,743816,743892,744894,745180,745268,746010,746193,746206,746227,746233,746274,746902-746903,746925,746944,746968,746970,747279,747289,747802,748084,748090,748783,749262,749318,749863,750533,752073,752514,752555,752590,752609,752834,752836,752913,752932,753112-753113,753346,754645,754847,754927,755035,755226,755348,755370,755418,755426,755790,755905,755938,755986,755998,756352,757448,757624,757849,758156,759398,759932,760502
Modified: hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/LocalJobRunner.java
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/LocalJobRunner.java?rev=760514&r1=760513&r2=760514&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/LocalJobRunner.java (original)
+++ hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/LocalJobRunner.java Tue Mar 31 16:30:41 2009
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -28,8 +29,12 @@
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.DataOutputBuffer;
+import org.apache.hadoop.io.serializer.SerializationFactory;
+import org.apache.hadoop.io.serializer.Serializer;
import org.apache.hadoop.mapred.JobTrackerMetricsInst;
import org.apache.hadoop.mapred.JvmTask;
+import org.apache.hadoop.mapred.JobClient.RawSplit;
+import org.apache.hadoop.util.ReflectionUtils;
/** Implements MapReduce locally, in-process, for debugging. */
class LocalJobRunner implements JobSubmissionProtocol {
@@ -106,8 +111,44 @@
OutputCommitter outputCommitter = job.getOutputCommitter();
try {
// split input into minimum number of splits
- InputSplit[] splits;
- splits = job.getInputFormat().getSplits(job, 1);
+ RawSplit[] rawSplits;
+ if (job.getUseNewMapper()) {
+ org.apache.hadoop.mapreduce.InputFormat<?,?> input =
+ ReflectionUtils.newInstance(jContext.getInputFormatClass(), jContext.getJobConf());
+
+ List<org.apache.hadoop.mapreduce.InputSplit> splits = input.getSplits(jContext);
+ rawSplits = new RawSplit[splits.size()];
+ DataOutputBuffer buffer = new DataOutputBuffer();
+ SerializationFactory factory = new SerializationFactory(conf);
+ Serializer serializer =
+ factory.getSerializer(splits.get(0).getClass());
+ serializer.open(buffer);
+ for (int i = 0; i < splits.size(); i++) {
+ buffer.reset();
+ serializer.serialize(splits.get(i));
+ RawSplit rawSplit = new RawSplit();
+ rawSplit.setClassName(splits.get(i).getClass().getName());
+ rawSplit.setDataLength(splits.get(i).getLength());
+ rawSplit.setBytes(buffer.getData(), 0, buffer.getLength());
+ rawSplit.setLocations(splits.get(i).getLocations());
+ rawSplits[i] = rawSplit;
+ }
+
+ } else {
+ InputSplit[] splits = job.getInputFormat().getSplits(job, 1);
+ rawSplits = new RawSplit[splits.length];
+ DataOutputBuffer buffer = new DataOutputBuffer();
+ for (int i = 0; i < splits.length; i++) {
+ buffer.reset();
+ splits[i].write(buffer);
+ RawSplit rawSplit = new RawSplit();
+ rawSplit.setClassName(splits[i].getClass().getName());
+ rawSplit.setDataLength(splits[i].getLength());
+ rawSplit.setBytes(buffer.getData(), 0, buffer.getLength());
+ rawSplit.setLocations(splits[i].getLocations());
+ rawSplits[i] = rawSplit;
+ }
+ }
int numReduceTasks = job.getNumReduceTasks();
if (numReduceTasks > 1 || numReduceTasks < 0) {
@@ -118,19 +159,14 @@
outputCommitter.setupJob(jContext);
status.setSetupProgress(1.0f);
- DataOutputBuffer buffer = new DataOutputBuffer();
- for (int i = 0; i < splits.length; i++) {
+ for (int i = 0; i < rawSplits.length; i++) {
if (!this.isInterrupted()) {
TaskAttemptID mapId = new TaskAttemptID(new TaskID(jobId, true, i),0);
mapIds.add(mapId);
- buffer.reset();
- splits[i].write(buffer);
- BytesWritable split = new BytesWritable();
- split.set(buffer.getData(), 0, buffer.getLength());
MapTask map = new MapTask(file.toString(),
mapId, i,
- splits[i].getClass().getName(),
- split);
+ rawSplits[i].getClassName(),
+ rawSplits[i].getBytes());
JobConf localConf = new JobConf(job);
map.setJobFile(localFile.toString());
map.localizeConfiguration(localConf);