From a4b99cf687805e4402a15d45757a3f920410de0c Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Thu, 4 Mar 2010 16:39:10 +0000 Subject: [PATCH] HBASE-2063 For hfileoutputformat, on timeout/failure/kill clean up half-written hfile git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@919058 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 2 ++ .../org/apache/hadoop/hbase/mapreduce/HFileOutputFormat.java | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) 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