diff --git a/CHANGES.txt b/CHANGES.txt index 5eee04e40d6..adbf8364ef2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -221,6 +221,8 @@ Release 0.21.0 - Unreleased HBASE-2244 META gets inconsistent in a number of crash scenarios HBASE-2284 fsWriteLatency metric may be incorrectly reported (Kannan Muthukkaruppan via Stack) + HBASE-2063 For hfileoutputformat, on timeout/failure/kill clean up + half-written hfile (Ruslan Salyakhov via Stack) IMPROVEMENTS HBASE-1760 Cleanup TODOs in HTable diff --git a/core/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat.java b/core/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat.java index 6ee62f1346e..fefb6bc9eaa 100644 --- a/core/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat.java +++ b/core/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat.java @@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.regionserver.StoreFile; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.mapreduce.RecordWriter; import org.apache.hadoop.mapreduce.TaskAttemptContext; +import org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.mortbay.log.Log; @@ -50,7 +51,8 @@ public class HFileOutputFormat extends FileOutputFormat getRecordWriter(TaskAttemptContext context) throws IOException, InterruptedException { // Get the path of the temporary output file - final Path outputdir = FileOutputFormat.getOutputPath(context); + final Path outputPath = FileOutputFormat.getOutputPath(context); + final Path outputdir = new FileOutputCommitter(outputPath, context).getWorkPath(); Configuration conf = context.getConfiguration(); final FileSystem fs = outputdir.getFileSystem(conf); // These configs. are from hbase-*.xml