You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/10/20 08:44:03 UTC
[2/3] kylin git commit: KYLIN-2109 Deploy coprocessor only this
server own the table
KYLIN-2109 Deploy coprocessor only this server own the table
Signed-off-by: Li Yang <li...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/c7a48dd9
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/c7a48dd9
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/c7a48dd9
Branch: refs/heads/master
Commit: c7a48dd93f7733b6ddf267e8b8f56ed7153a280c
Parents: b7e8065
Author: kangkaisen <ka...@live.com>
Authored: Wed Oct 19 15:45:19 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Thu Oct 20 16:43:51 2016 +0800
----------------------------------------------------------------------
.../hbase/util/DeployCoprocessorCLI.java | 28 +++++++++++++++-----
1 file changed, 22 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/c7a48dd9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
index cc9b988..f2618dc 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
@@ -69,6 +69,8 @@ public class DeployCoprocessorCLI {
public static final String CubeObserverClassOld = "org.apache.kylin.storage.hbase.coprocessor.observer.AggregateRegionObserver";
public static final String IIEndpointClassOld = "org.apache.kylin.storage.hbase.coprocessor.endpoint.IIEndpoint";
public static final String IIEndpointClass = "org.apache.kylin.storage.hbase.ii.coprocessor.endpoint.IIEndpoint";
+ private static KylinConfig kylinConfig;
+
private static final Logger logger = LoggerFactory.getLogger(DeployCoprocessorCLI.class);
public static void main(String[] args) throws IOException {
@@ -77,7 +79,7 @@ public class DeployCoprocessorCLI {
printUsageAndExit();
}
- KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
+ kylinConfig = KylinConfig.getInstanceFromEnv();
Configuration hconf = HBaseConnection.getCurrentHBaseConfiguration();
FileSystem fileSystem = FileSystem.get(hconf);
HBaseAdmin hbaseAdmin = new HBaseAdmin(hconf);
@@ -189,12 +191,22 @@ public class DeployCoprocessorCLI {
desc.addCoprocessor(CubeObserverClass, hdfsCoprocessorJar, 1002, null);
}
- public static void resetCoprocessor(String tableName, HBaseAdmin hbaseAdmin, Path hdfsCoprocessorJar) throws IOException {
+ public static boolean resetCoprocessor(String tableName, HBaseAdmin hbaseAdmin, Path hdfsCoprocessorJar) throws IOException {
+ HTableDescriptor desc = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName));
+
+ //when the table has migrated from dev env to test(prod) env, the dev server
+ //should not reset the coprocessor of the table.
+ String host = desc.getValue(IRealizationConstants.HTableTag);
+ if (!host.equalsIgnoreCase(kylinConfig.getMetadataUrlPrefix())) {
+ logger.warn("This server doesn't own this table: " + tableName);
+ return false;
+ }
+
+ logger.info("reset coprocessor on " + tableName);
+
logger.info("Disable " + tableName);
hbaseAdmin.disableTable(tableName);
- logger.info("Unset coprocessor on " + tableName);
- HTableDescriptor desc = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName));
while (desc.hasCoprocessor(CubeObserverClass)) {
desc.removeCoprocessor(CubeObserverClass);
}
@@ -223,6 +235,8 @@ public class DeployCoprocessorCLI {
logger.info("Enable " + tableName);
hbaseAdmin.enableTable(tableName);
+
+ return true;
}
private static List<String> processedTables = Collections.synchronizedList(new ArrayList<String>());
@@ -260,8 +274,10 @@ public class DeployCoprocessorCLI {
@Override
public void run() {
try {
- resetCoprocessor(tableName, hbaseAdmin, hdfsCoprocessorJar);
- processedTables.add(tableName);
+ boolean isProcessed = resetCoprocessor(tableName, hbaseAdmin, hdfsCoprocessorJar);
+ if (isProcessed) {
+ processedTables.add(tableName);
+ }
} catch (Exception ex) {
logger.error("Error processing " + tableName, ex);
} finally {