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 2019/05/13 10:04:42 UTC
[kylin] 03/03: 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 8fecd3b2c69a9e17f02b539a6270ef4f13f1b665
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 | 15 ++++++++++-----
.../apache/kylin/storage/hbase/util/StorageCleanUtil.java | 13 +++++++------
2 files changed, 17 insertions(+), 11 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 2a5ce26..8dc31a4 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;
@@ -576,10 +577,12 @@ public class CubeService extends BasicService implements InitializingBean {
List<String> toDelHDFSPaths = Lists.newArrayListWithCapacity(toRemoveSegs.size());
for (CubeSegment seg : toRemoveSegs) {
toDropHTables.add(seg.getStorageLocationIdentifier());
- toDelHDFSPaths.add(JobBuilderSupport.getJobWorkingDir(seg.getConfig().getHdfsWorkingDirectory(), seg.getLastBuildJobID()));
+ 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);
}
}
@@ -928,7 +931,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);