From 4c03ed5ad57b3d3e98a4069b2d6580fee6abbe4c Mon Sep 17 00:00:00 2001 From: Ashish Singhi Date: Wed, 15 Oct 2014 14:07:41 +0530 Subject: [PATCH] HBase-12264 ImportTsv should fail fast if output is not specified and table also does not exist --- .../main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java | 5 +++++ .../java/org/apache/hadoop/hbase/mapreduce/TestImportTsv.java | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java index 5b375e9..f586523 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java @@ -459,6 +459,11 @@ public class ImportTsv extends Configured implements Tool { } HFileOutputFormat.configureIncrementalLoad(job, table); } else { + if (!admin.tableExists(tableName)) { + String errorMsg = format("Table '%s' does not exist.", tableName); + LOG.error(errorMsg); + throw new TableNotFoundException(errorMsg); + } if (mapperClass.equals(TsvImporterTextMapper.class)) { usage(TsvImporterTextMapper.class.toString() + " should not be used for non bulkloading case. use " diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportTsv.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportTsv.java index 2acddd3..7607c78 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportTsv.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportTsv.java @@ -244,6 +244,16 @@ public class TestImportTsv implements Configurable { ImportTsv.createSubmittableJob(conf, args); } + @Test(expected = TableNotFoundException.class) + public void testMRWithoutAnExistingTable() throws Exception { + String table = "test-" + UUID.randomUUID(); + String[] args = + new String[] { table, "/inputFile" }; + + Configuration conf = new Configuration(util.getConfiguration()); + ImportTsv.createSubmittableJob(conf, args); + } + protected static Tool doMROnTableTest(HBaseTestingUtility util, String family, String data, String[] args) throws Exception { return doMROnTableTest(util, family, data, args, 1); -- 1.9.2.msysgit.0