You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@kylin.apache.org by 曾耀武 <ze...@immomo.com> on 2017/10/18 12:37:24 UTC

Re: [外部邮件] Re: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在

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 <sh...@apache.org>>
答复: user <us...@kylin.apache.org>>
日期: 2017年10月17日 星期二 下午4:16
至: user <us...@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 <yu...@ele.me>>写道:


sh metastore.sh clean --delete true

sh kylin.sh org.apache.kylin.storage.hbase.util.StorageCleanupJob --delete true

 原始邮件
发件人: 曾耀武<ze...@immomo.com>>
收件人: user<us...@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" <yu...@ele.me>>
答复: user <us...@kylin.apache.org>>
日期: 2017年10月17日 星期二 下午3:04
至: user <us...@kylin.apache.org>>
主题: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在


cleanup storage

http://kylin.apache.org/docs15/howto/howto_cleanup_storage.html

 原始邮件
发件人: 曾耀武<ze...@immomo.com>>
收件人: user<us...@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 史少锋


Re: [外部邮件] Re: [外部邮件] Re: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在

Posted by 曾耀武 <ze...@immomo.com>.
Updated ,please check it , thanks.

发件人: Billy Liu <bi...@apache.org>>
答复: user <us...@kylin.apache.org>>
日期: 2017年10月19日 星期四 上午12:40
至: user <us...@kylin.apache.org>>
主题: [外部邮件] Re: [外部邮件] Re: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在

Agree. A new patch is needed in KYLIN-2846. It's not a bug still, but an unfinished improvement I think. Let's continue to improve this issue.

2017-10-18 21:05 GMT+08:00 ShaoFeng Shi <sh...@apache.org>>:
Hi Yaowu,

Could you please update this patch in KYLIN-2846? Storage cleanup should also support customized namespace. Thanks.

2017-10-18 20:37 GMT+08:00 曾耀武 <ze...@immomo.com>>:

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 <sh...@apache.org>>
答复: user <us...@kylin.apache.org>>
日期: 2017年10月17日 星期二 下午4:16
至: user <us...@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 <yu...@ele.me>>写道:


sh metastore.sh clean --delete true

sh kylin.sh org.apache.kylin.storage.hbase.util.StorageCleanupJob --delete true

 原始邮件
发件人: 曾耀武<ze...@immomo.com>>
收件人: user<us...@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" <yu...@ele.me>>
答复: user <us...@kylin.apache.org>>
日期: 2017年10月17日 星期二 下午3:04
至: user <us...@kylin.apache.org>>
主题: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在


cleanup storage

http://kylin.apache.org/docs15/howto/howto_cleanup_storage.html

 原始邮件
发件人: 曾耀武<ze...@immomo.com>>
收件人: user<us...@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 史少锋




--
Best regards,

Shaofeng Shi 史少锋



Re: [外部邮件] Re: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在

Posted by Billy Liu <bi...@apache.org>.
Agree. A new patch is needed in KYLIN-2846. It's not a bug still, but an
unfinished improvement I think. Let's continue to improve this issue.

2017-10-18 21:05 GMT+08:00 ShaoFeng Shi <sh...@apache.org>:

> Hi Yaowu,
>
> Could you please update this patch in KYLIN-2846? Storage cleanup should
> also support customized namespace. Thanks.
>
> 2017-10-18 20:37 GMT+08:00 曾耀武 <ze...@immomo.com>:
>
>>
>> Yeah I have checked it was a bug , because I  used hbase namespace
>> “kylin” with the patch "https://issues.apache.org/jir
>> a/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/Storag
>> eCleanJobHbaseUtil.java
>> index 3728ea1..937d02d 100644
>> --- a/server-base/src/main/java/org/apache/kylin/rest/job/Storag
>> eCleanJobHbaseUtil.java
>> +++ b/server-base/src/main/java/org/apache/kylin/rest/job/Storag
>> eCleanJobHbaseUtil.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(KylinC
>> onfig.getInstanceFromEnv());
>> +        KylinConfig config = KylinConfig.getInstanceFromEnv();
>> +        CubeManager cubeMgr = CubeManager.getInstance(config);
>>          // get all kylin hbase tables
>>          try (HBaseAdmin hbaseAdmin = new HBaseAdmin(conf)) {
>> -            String tableNamePrefix = IRealizationConstants.SharedHb
>> aseStorageLocationPrefix;
>> +            String namespace = config.getHBaseStorageNameSpace();
>> +            StringBuffer sb = new StringBuffer();
>> +            String tableNamePrefix = null;
>> +            if(namespace.equals("default")){
>> +                tableNamePrefix = IRealizationConstants.SharedHb
>> aseStorageLocationPrefix;
>> +            }else{
>> +                sb.append(config.getHBaseStor
>> ageNameSpace()).append(":");
>> +                sb.append(IRealizationConstan
>> ts.SharedHbaseStorageLocationPrefix);
>> +                tableNamePrefix = sb.toString();
>> +            }
>> +
>>
>>
>>
>>
>>
>> 发件人: ShaoFeng Shi <sh...@apache.org>
>> 答复: user <us...@kylin.apache.org>
>> 日期: 2017年10月17日 星期二 下午4:16
>> 至: user <us...@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 <yu...@ele.me>写道:
>>
>>>
>>> sh metastore.sh clean --delete true
>>>
>>> sh kylin.sh org.apache.kylin.storage.hbase.util.StorageCleanupJob
>>> --delete true
>>>  原始邮件
>>> *发件人:* 曾耀武<ze...@immomo.com>
>>> *收件人:* user<us...@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" <yu...@ele.me>
>>> 答复: user <us...@kylin.apache.org>
>>> 日期: 2017年10月17日 星期二 下午3:04
>>> 至: user <us...@kylin.apache.org>
>>> 主题: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在
>>>
>>> cleanup storage
>>>
>>> http://kylin.apache.org/docs15/howto/howto_cleanup_storage.html
>>>
>>>  原始邮件
>>> *发件人:* 曾耀武<ze...@immomo.com>
>>> *收件人:* user<us...@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 史少锋
>>
>>
>
>
> --
> Best regards,
>
> Shaofeng Shi 史少锋
>
>

Re: [外部邮件] Re: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在

Posted by ShaoFeng Shi <sh...@apache.org>.
Hi Yaowu,

Could you please update this patch in KYLIN-2846? Storage cleanup should
also support customized namespace. Thanks.

2017-10-18 20:37 GMT+08:00 曾耀武 <ze...@immomo.com>:

>
> 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 <sh...@apache.org>
> 答复: user <us...@kylin.apache.org>
> 日期: 2017年10月17日 星期二 下午4:16
> 至: user <us...@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 <yu...@ele.me>写道:
>
>>
>> sh metastore.sh clean --delete true
>>
>> sh kylin.sh org.apache.kylin.storage.hbase.util.StorageCleanupJob
>> --delete true
>>  原始邮件
>> *发件人:* 曾耀武<ze...@immomo.com>
>> *收件人:* user<us...@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" <yu...@ele.me>
>> 答复: user <us...@kylin.apache.org>
>> 日期: 2017年10月17日 星期二 下午3:04
>> 至: user <us...@kylin.apache.org>
>> 主题: [外部邮件] 回复:kylin drop cube segment Htable 仍然存在
>>
>> cleanup storage
>>
>> http://kylin.apache.org/docs15/howto/howto_cleanup_storage.html
>>
>>  原始邮件
>> *发件人:* 曾耀武<ze...@immomo.com>
>> *收件人:* user<us...@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 史少锋
>
>


-- 
Best regards,

Shaofeng Shi 史少锋