From acd3231c7c7da2ec72c894f249dcb514388e8144 Mon Sep 17 00:00:00 2001 From: ChaoLong Date: Sun, 17 Dec 2017 09:10:43 +0000 Subject: [PATCH] KYLIN-3111 Place close of admin instance into finally block --- .../storage/hbase/util/DeployCoprocessorCLI.java | 79 ++++++++++++---------- .../storage/hbase/util/HtableAlterMetadataCLI.java | 21 ++++-- 2 files changed, 56 insertions(+), 44 deletions(-) diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java index 56d5497..aa69151 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java @@ -89,53 +89,58 @@ public class DeployCoprocessorCLI { Configuration hconf = HBaseConnection.getCurrentHBaseConfiguration(); FileSystem fileSystem = FileSystem.get(hconf); Connection conn = HBaseConnection.get(kylinConfig.getStorageUrl()); - Admin hbaseAdmin = conn.getAdmin(); + Admin hbaseAdmin = null; - String localCoprocessorJar; - if ("default".equals(args[0])) { - localCoprocessorJar = kylinConfig.getCoprocessorLocalJar(); - } else { - localCoprocessorJar = new File(args[0]).getAbsolutePath(); - } + try { + hbaseAdmin = conn.getAdmin(); + String localCoprocessorJar; + if ("default".equals(args[0])) { + localCoprocessorJar = kylinConfig.getCoprocessorLocalJar(); + } else { + localCoprocessorJar = new File(args[0]).getAbsolutePath(); + } - logger.info("Identify coprocessor jar " + localCoprocessorJar); + logger.info("Identify coprocessor jar " + localCoprocessorJar); - List tableNames = getHTableNames(kylinConfig); - logger.info("Identify tables " + tableNames); + List tableNames = getHTableNames(kylinConfig); + logger.info("Identify tables " + tableNames); - String filterType = args[1].toLowerCase(); - if (filterType.equals("-table")) { - tableNames = filterByTables(tableNames, Arrays.asList(args).subList(2, args.length)); - } else if (filterType.equals("-cube")) { - tableNames = filterByCubes(tableNames, Arrays.asList(args).subList(2, args.length)); - } else if (filterType.equals("-project")) { - tableNames = filterByProjects(tableNames, Arrays.asList(args).subList(2, args.length)); - } else if (!filterType.equals("all")) { - printUsageAndExit(); - } - - logger.info("Will execute tables " + tableNames); - long start = System.currentTimeMillis(); + String filterType = args[1].toLowerCase(); + if (filterType.equals("-table")) { + tableNames = filterByTables(tableNames, Arrays.asList(args).subList(2, args.length)); + } else if (filterType.equals("-cube")) { + tableNames = filterByCubes(tableNames, Arrays.asList(args).subList(2, args.length)); + } else if (filterType.equals("-project")) { + tableNames = filterByProjects(tableNames, Arrays.asList(args).subList(2, args.length)); + } else if (!filterType.equals("all")) { + printUsageAndExit(); + } - Set oldJarPaths = getCoprocessorJarPaths(hbaseAdmin, tableNames); - logger.info("Old coprocessor jar: " + oldJarPaths); + logger.info("Will execute tables " + tableNames); + long start = System.currentTimeMillis(); - Path hdfsCoprocessorJar = uploadCoprocessorJar(localCoprocessorJar, fileSystem, oldJarPaths); - logger.info("New coprocessor jar: " + hdfsCoprocessorJar); + Set oldJarPaths = getCoprocessorJarPaths(hbaseAdmin, tableNames); + logger.info("Old coprocessor jar: " + oldJarPaths); - Pair, List> results = resetCoprocessorOnHTables(hbaseAdmin, hdfsCoprocessorJar, tableNames); + Path hdfsCoprocessorJar = uploadCoprocessorJar(localCoprocessorJar, fileSystem, oldJarPaths); + logger.info("New coprocessor jar: " + hdfsCoprocessorJar); - // Don't remove old jars, missing coprocessor jar will fail hbase - // removeOldJars(oldJarPaths, fileSystem); + Pair, List> results = resetCoprocessorOnHTables(hbaseAdmin, hdfsCoprocessorJar, tableNames); - hbaseAdmin.close(); + // Don't remove old jars, missing coprocessor jar will fail hbase + // removeOldJars(oldJarPaths, fileSystem); - logger.info("Processed time: " + (System.currentTimeMillis() - start)); - logger.info("Processed tables count: " + results.getFirst().size()); - logger.info("Processed tables: " + results.getFirst()); - logger.error("Failed tables count: " + results.getSecond().size()); - logger.error("Failed tables : " + results.getSecond()); - logger.info("Active coprocessor jar: " + hdfsCoprocessorJar); + logger.info("Processed time: " + (System.currentTimeMillis() - start)); + logger.info("Processed tables count: " + results.getFirst().size()); + logger.info("Processed tables: " + results.getFirst()); + logger.error("Failed tables count: " + results.getSecond().size()); + logger.error("Failed tables : " + results.getSecond()); + logger.info("Active coprocessor jar: " + hdfsCoprocessorJar); + } finally { + if (hbaseAdmin != null) { + hbaseAdmin.close(); + } + } } private static void printUsageAndExit() { diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java index ea05ab2..9de92f5 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java @@ -52,14 +52,21 @@ public class HtableAlterMetadataCLI extends AbstractApplication { private void alter() throws IOException { Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()); - Admin hbaseAdmin = conn.getAdmin(); - HTableDescriptor table = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName)); + Admin hbaseAdmin = null; - hbaseAdmin.disableTable(table.getTableName()); - table.setValue(metadataKey, metadataValue); - hbaseAdmin.modifyTable(table.getTableName(), table); - hbaseAdmin.enableTable(table.getTableName()); - hbaseAdmin.close(); + try { + hbaseAdmin = conn.getAdmin(); + HTableDescriptor table = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName)); + + hbaseAdmin.disableTable(table.getTableName()); + table.setValue(metadataKey, metadataValue); + hbaseAdmin.modifyTable(table.getTableName(), table); + hbaseAdmin.enableTable(table.getTableName()); + } finally { + if (hbaseAdmin != null) { + hbaseAdmin.close(); + } + } } public static void main(String[] args) throws Exception { -- 2.0.5