You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2020/02/11 02:25:47 UTC

[kylin] 03/08: KYLIN-2565 Fix use of HBaseAdmin

This is an automated email from the ASF dual-hosted git repository.

nic pushed a commit to branch 2.6.x-hadoop3.1
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit e5859d7a9161296ad5f8ec07a8b0b94d7b24f43e
Author: nichunen <ni...@apache.org>
AuthorDate: Mon May 13 18:04:11 2019 +0800

    KYLIN-2565 Fix use of HBaseAdmin
---
 .../java/org/apache/kylin/rest/service/CubeService.java     | 12 ++++++++----
 .../apache/kylin/storage/hbase/util/StorageCleanUtil.java   | 13 +++++++------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
index c9f6fb9..dc5d7e5 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
@@ -29,7 +29,8 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.common.util.CliCommandExecutor;
@@ -581,8 +582,9 @@ public class CubeService extends BasicService implements InitializingBean {
                 toDelHDFSPaths.add(JobBuilderSupport.getJobWorkingDir(seg.getConfig().getHdfsWorkingDirectory(),
                         seg.getLastBuildJobID()));
             }
-
-            StorageCleanUtil.dropHTables(new HBaseAdmin(HBaseConnection.getCurrentHBaseConfiguration()), toDropHTables);
+            Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+            Admin hbaseAdmin = conn.getAdmin();
+            StorageCleanUtil.dropHTables(hbaseAdmin, toDropHTables);
             StorageCleanUtil.deleteHDFSPath(HadoopUtil.getWorkingFileSystem(), toDelHDFSPaths);
         }
     }
@@ -946,7 +948,9 @@ public class CubeService extends BasicService implements InitializingBean {
         return node;
     }
 
-    /** cube planner services */
+    /**
+     * cube planner services
+     */
     public Map<Long, Long> getRecommendCuboidStatistics(CubeInstance cube, Map<Long, Long> hitFrequencyMap,
             Map<Long, Map<Long, Pair<Long, Long>>> rollingUpCountSourceMap) throws IOException {
         aclEvaluate.checkProjectAdminPermission(cube.getProject());
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanUtil.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanUtil.java
index a1259b8..0cae1e7 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanUtil.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanUtil.java
@@ -21,7 +21,8 @@ package org.apache.kylin.storage.hbase.util;
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -35,18 +36,18 @@ public class StorageCleanUtil {
     /**
      * this method will close hbaseAdmin after finishing the work.
      */
-    public static void dropHTables(final HBaseAdmin hbaseAdmin, List<String> hTables) {
+    public static void dropHTables(final Admin hbaseAdmin, List<String> hTables) {
         runSingleThreadTaskQuietly(() -> {
             try {
                 for (String htable : hTables) {
                     logger.info("Deleting HBase table {}", htable);
 
-                    if (hbaseAdmin.tableExists(htable)) {
-                        if (hbaseAdmin.isTableEnabled(htable)) {
-                            hbaseAdmin.disableTable(htable);
+                    if (hbaseAdmin.tableExists(TableName.valueOf(htable))) {
+                        if (hbaseAdmin.isTableEnabled(TableName.valueOf(htable))) {
+                            hbaseAdmin.disableTable(TableName.valueOf(htable));
                         }
 
-                        hbaseAdmin.deleteTable(htable);
+                        hbaseAdmin.deleteTable(TableName.valueOf(htable));
                         logger.info("Deleted HBase table {}", htable);
                     } else {
                         logger.info("HBase table {} does not exist.", htable);