-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7386/
-----------------------------------------------------------
(Updated Oct. 2, 2012, 1:09 a.m.)
Review request for hcatalog and Francis Liu.
Description
-------
If an MR job using HCatOutputFormat fails, and
FileOutputCommitterContainer::abortJob() is called, one would expect that
partitions aren't created/registered with HCatalog.
When using dynamic-partitions, one sees that this behaves correctly. But when
static-partitions are used, partitions are created regardless of whether the
Job succeeded or failed.
(This manifested as a failure when the job is repeated. The retry-job fails to
launch since the partitions already exist from the last failed run.)
This is a result of bad code in FileOutputCommitter::cleanupJob(), which seems
to do an unconditional partition-add. This can be fixed by adding a check for
the output directory before adding partitions (in the !dynamicParititoning
case), since the directory is removed in abortJob().
As an aside, we ought to move the partition-creation into commitJob(), where
it logically belongs. cleanupJob() is deprecated and common to both success and
failure code paths.
This addresses bug hcatalog-451.
https://issues.apache.org/jira/browse/hcatalog-451
Diffs
-----
/trunk/hcatalog-pig-adapter/src/test/java/org/apache/hcatalog/pig/TestHCatStorer.java
1392658
/trunk/src/java/org/apache/hcatalog/mapreduce/FileOutputCommitterContainer.java
1392658
/trunk/src/java/org/apache/hcatalog/mapreduce/InitializeInput.java 1392658
/trunk/src/java/org/apache/hcatalog/mapreduce/InternalUtil.java 1392658
/trunk/src/test/org/apache/hcatalog/mapreduce/TestHCatOutputFormat.java
1392658
/trunk/src/test/org/apache/hcatalog/mapreduce/TestHCatPartitionPublish.java
PRE-CREATION
Diff: https://reviews.apache.org/r/7386/diff/
Testing
-------
unit tests and e2e tests pass.
Thanks,
Vandana Ayyalasomayajula