Yeah I have checked it was a bug , because I used hbase namespace “kylin” with the patch "https://issues.apache.org/jira/secure/attachment/12885320/KYLIN-2846-001.patch”
And I modified the code as below and it works well: MOMO@MOMOdeMacBook-Pro-5:~/gitworkspace/kylin2.0/kylin/dist/apache-kylin-2.1.0-bin/tool$ git diff ../../../server-base/src/main/java/org/apache/kylin/rest/job/StorageCleanJobHbaseUtil.java 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..937d02d 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")){ + tableNamePrefix = IRealizationConstants.SharedHbaseStorageLocationPrefix; + }else{ + sb.append(config.getHBaseStorageNameSpace()).append(":"); + sb.append(IRealizationConstants.SharedHbaseStorageLocationPrefix); + tableNamePrefix = sb.toString(); + } + 发件人: ShaoFeng Shi <shaofeng...@apache.org<mailto:shaofeng...@apache.org>> 答复: user <user@kylin.apache.org<mailto:user@kylin.apache.org>> 日期: 2017年10月17日 星期二 下午4:16 至: user <user@kylin.apache.org<mailto:user@kylin.apache.org>> 主题: [外部邮件] Re: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在 Hi yaowu, The StorageCleanupJob will delete the hbase tables that has no reference; If you found it didn't work, please check the output log of that command. It should say something. 在 2017年10月17日 下午3:39,yuyong.zhai <yuyong.z...@ele.me<mailto:yuyong.z...@ele.me>>写道: sh metastore.sh clean --delete true sh kylin.sh org.apache.kylin.storage.hbase.util.StorageCleanupJob --delete true 原始邮件 发件人: 曾耀武<zeng.ya...@immomo.com<mailto:zeng.ya...@immomo.com>> 收件人: user<user@kylin.apache.org<mailto:user@kylin.apache.org>> 发送时间: 2017年10月17日(周二) 15:23 主题: Re: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在 这个我看了,执行之后发现只是删除了 hive 中间表 kylin_intermediate_* 任务失败遗留的中间表 和 hdfs://nameservice1:8020/kylin/kylin-kylin_metadata/ 目录下没用的临时目录, hbase 里的 segment 表仍然存在的 发件人: "yuyong.zhai" <yuyong.z...@ele.me<mailto:yuyong.z...@ele.me>> 答复: user <user@kylin.apache.org<mailto:user@kylin.apache.org>> 日期: 2017年10月17日 星期二 下午3:04 至: user <user@kylin.apache.org<mailto:user@kylin.apache.org>> 主题: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在 cleanup storage http://kylin.apache.org/docs15/howto/howto_cleanup_storage.html 原始邮件 发件人: 曾耀武<zeng.ya...@immomo.com<mailto:zeng.ya...@immomo.com>> 收件人: user<user@kylin.apache.org<mailto:user@kylin.apache.org>> 发送时间: 2017年10月17日(周二) 14:02 主题: kylin drop cube segment Htable 仍然存在 嗨,all ,在清理没用的cube (kylin2.1.0) 时,发现cube 被purge和drop 之后,对应的segment hbase 表仍然在 base中存在,只是在kylinmeta 表的里的元信息被清除, 这是我的特例还是为了数据安全特意让他存在, 只能人工删除相关的表呢? Best regards -- Best regards, Shaofeng Shi 史少锋