Updated Branches: refs/heads/trunk 3fee25eb8 -> 0b2a688d3
SQOOP 600: HBase table family presence is not working correctly on new HBase versions (Jarek Jarcec Cecho via Abhijeet Gaikwad) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/0b2a688d Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/0b2a688d Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/0b2a688d Branch: refs/heads/trunk Commit: 0b2a688d36f36e7cbc3c0b3bb621df500ec81003 Parents: 3fee25e Author: Abhijeet Gaikwad <[email protected]> Authored: Thu Sep 13 22:46:25 2012 +0530 Committer: Abhijeet Gaikwad <[email protected]> Committed: Thu Sep 13 22:46:25 2012 +0530 ---------------------------------------------------------------------- .../org/apache/sqoop/mapreduce/HBaseImportJob.java | 31 +++++++++------ 1 files changed, 19 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/0b2a688d/src/java/org/apache/sqoop/mapreduce/HBaseImportJob.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/sqoop/mapreduce/HBaseImportJob.java b/src/java/org/apache/sqoop/mapreduce/HBaseImportJob.java index a2a167b..467c5fd 100644 --- a/src/java/org/apache/sqoop/mapreduce/HBaseImportJob.java +++ b/src/java/org/apache/sqoop/mapreduce/HBaseImportJob.java @@ -181,13 +181,14 @@ public class HBaseImportJob extends DataDrivenImportJob { } // Check to see if the table exists. - HTableDescriptor tableDesc = new HTableDescriptor(tableName); + HTableDescriptor tableDesc = null; byte [] familyBytes = Bytes.toBytes(familyName); HColumnDescriptor colDesc = new HColumnDescriptor(familyBytes); if (!admin.tableExists(tableName)) { if (options.getCreateHBaseTable()) { // Create the table. LOG.info("Creating missing HBase table " + tableName); + tableDesc = new HTableDescriptor(tableName); tableDesc.addFamily(colDesc); admin.createTable(tableDesc); } else { @@ -195,18 +196,24 @@ public class HBaseImportJob extends DataDrivenImportJob { LOG.warn("This job may fail. Either explicitly create the table,"); LOG.warn("or re-run with --hbase-create-table."); } - } else if (!tableDesc.hasFamily(familyBytes)) { - if (options.getCreateHBaseTable()) { - // Create the column family. - LOG.info("Creating missing column family " + familyName); - admin.disableTable(tableName); - admin.addColumn(tableName, colDesc); - admin.enableTable(tableName); - } else { - LOG.warn("Could not find column family " + familyName + " in table " + } else { + // Table exists, so retrieve their current version + tableDesc = admin.getTableDescriptor(Bytes.toBytes(tableName)); + + // Check if current version do have specified column family + if (!tableDesc.hasFamily(familyBytes)) { + if (options.getCreateHBaseTable()) { + // Create the column family. + LOG.info("Creating missing column family " + familyName); + admin.disableTable(tableName); + admin.addColumn(tableName, colDesc); + admin.enableTable(tableName); + } else { + LOG.warn("Could not find column family " + familyName + " in table " + tableName); - LOG.warn("This job may fail. Either create the column family,"); - LOG.warn("or re-run with --hbase-create-table."); + LOG.warn("This job may fail. Either create the column family,"); + LOG.warn("or re-run with --hbase-create-table."); + } } }
