diff --git a/server-base/src/main/java/org/apache/kylin/rest/job/StorageCleanJobHbaseUtil.java b/server-base/src/main/java/org/apache/kylin/rest/job/StorageCleanJobHbaseUtil.java index 3728ea1..2d95542 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/job/StorageCleanJobHbaseUtil.java +++ b/server-base/src/main/java/org/apache/kylin/rest/job/StorageCleanJobHbaseUtil.java @@ -46,15 +46,28 @@ public class StorageCleanJobHbaseUtil { public static void cleanUnusedHBaseTables(boolean delete, int deleteTimeout) throws IOException { Configuration conf = HBaseConfiguration.create(); - CubeManager cubeMgr = CubeManager.getInstance(KylinConfig.getInstanceFromEnv()); + KylinConfig config = KylinConfig.getInstanceFromEnv(); + CubeManager cubeMgr = CubeManager.getInstance(config); // get all kylin hbase tables try (HBaseAdmin hbaseAdmin = new HBaseAdmin(conf)) { - String tableNamePrefix = IRealizationConstants.SharedHbaseStorageLocationPrefix; + String namespace = config.getHBaseStorageNameSpace(); + StringBuffer sb = new StringBuffer(); + String tableNamePrefix = null; + if(namespace.equals("default") || namespace.equals("")){ + tableNamePrefix = IRealizationConstants.SharedHbaseStorageLocationPrefix; + }else{ + sb.append(config.getHBaseStorageNameSpace()).append(":"); + sb.append(IRealizationConstants.SharedHbaseStorageLocationPrefix); + tableNamePrefix = sb.toString(); + } + HTableDescriptor[] tableDescriptors = hbaseAdmin.listTables(tableNamePrefix + ".*"); + List allTablesNeedToBeDropped = new ArrayList(); for (HTableDescriptor desc : tableDescriptors) { + String host = desc.getValue(IRealizationConstants.HTableTag); - if (KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix().equalsIgnoreCase(host)) { + if (config.getMetadataUrlPrefix().equalsIgnoreCase(host)) { //only take care htables that belongs to self, and created more than 2 days allTablesNeedToBeDropped.add(desc.getTableName().getNameAsString()); }