Переглянути джерело

MAPREDUCE-4434. Backport MR-2779 (JobSplitWriter.java can't handle large job.split file) to branch-1. (kkambatl via tucu)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1@1442830 13f79535-47bb-0310-9956-ffa450edef68
Alejandro Abdelnur 12 роки тому
батько
коміт
05b6677d44

+ 3 - 0
CHANGES.txt

@@ -473,6 +473,9 @@ Release 1.2.0 - unreleased
 
     MAPREDUCE-4967. TestJvmReuse fails on assertion. (kkambatl via tucu)
 
+    MAPREDUCE-4434. Backport MR-2779 (JobSplitWriter.java can't handle large 
+    job.split file) to branch-1. (kkambatl via tucu)
+
 Release 1.1.2 - Unreleased
 
   INCOMPATIBLE CHANGES

+ 6 - 6
src/mapred/org/apache/hadoop/mapreduce/split/JobSplitWriter.java

@@ -116,15 +116,15 @@ public class JobSplitWriter {
     if (array.length != 0) {
       SerializationFactory factory = new SerializationFactory(conf);
       int i = 0;
-      long offset = out.size();
+      long offset = out.getPos();
       for(T split: array) {
-        int prevCount = out.size();
+        long prevCount = out.getPos();
         Text.writeString(out, split.getClass().getName());
         Serializer<T> serializer = 
           factory.getSerializer((Class<T>) split.getClass());
         serializer.open(out);
         serializer.serialize(split);
-        int currCount = out.size();
+        long currCount = out.getPos();
         String[] locations = split.getLocations();
         final int max_loc = conf.getInt(MAX_SPLIT_LOCATIONS, 10);
         if (locations.length > max_loc) {
@@ -149,12 +149,12 @@ public class JobSplitWriter {
     SplitMetaInfo[] info = new SplitMetaInfo[splits.length];
     if (splits.length != 0) {
       int i = 0;
-      long offset = out.size();
+      long offset = out.getPos();
       for(org.apache.hadoop.mapred.InputSplit split: splits) {
-        int prevLen = out.size();
+        long prevLen = out.getPos();
         Text.writeString(out, split.getClass().getName());
         split.write(out);
-        int currLen = out.size();
+        long currLen = out.getPos();
         String[] locations = split.getLocations();
         final int max_loc = conf.getInt(MAX_SPLIT_LOCATIONS, 10);
         if (locations.length > max_loc) {