From 640a720c126e42e38702905818938e364bec07f4 Mon Sep 17 00:00:00 2001 From: shenyinjie Date: Sun, 3 Sep 2017 20:20:54 +0800 Subject: [PATCH] JIRA_ID:KYLIN-2819 summary: add configurable zk.base.path for kylin --- .../org/apache/kylin/common/KylinConfigBase.java | 4 ++++ .../src/main/resources/kylin-defaults.properties | 2 ++ .../job/impl/threadpool/DistributedScheduler.java | 2 +- .../hbase/util/ZookeeperDistributedLock.java | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index 0e990df..0a62f3d 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -226,6 +226,10 @@ abstract public class KylinConfigBase implements Serializable { return cachedHdfsWorkingDirectory; } + public String getZkBasePath() { + return getOptional("kylin.zk.base.path", "/kylin"); + } + /** * A comma separated list of host:port pairs, each corresponding to a ZooKeeper server */ diff --git a/core-common/src/main/resources/kylin-defaults.properties b/core-common/src/main/resources/kylin-defaults.properties index 7c421f9..0cd9b9c 100644 --- a/core-common/src/main/resources/kylin-defaults.properties +++ b/core-common/src/main/resources/kylin-defaults.properties @@ -26,6 +26,8 @@ kylin.env.hdfs-working-dir=/kylin # DEV|QA|PROD. DEV will turn on some dev features, QA and PROD has no difference in terms of functions. kylin.env=QA +# kylin zk base path +kylin.zk.base.path=/kylin ### SERVER | WEB ### diff --git a/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DistributedScheduler.java b/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DistributedScheduler.java index e3a5836..9902618 100644 --- a/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DistributedScheduler.java +++ b/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DistributedScheduler.java @@ -82,7 +82,7 @@ public class DistributedScheduler implements Scheduler, Conn private String serverName; private final static String SEGMENT_ID = "segmentId"; - public static final String ZOOKEEPER_LOCK_PATH = "/job_engine/lock"; // note ZookeeperDistributedLock will ensure zk path prefix: /kylin/metadata + public static final String ZOOKEEPER_LOCK_PATH = "/job_engine/lock"; // note ZookeeperDistributedLock will ensure zk path prefix: /${kylin.zk.base.path}/metadata //only for it test public static DistributedScheduler getInstance(KylinConfig config) { diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java index 63ffda0..27278ff 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java @@ -102,7 +102,7 @@ public class ZookeeperDistributedLock implements DistributedLock, JobLock { public Factory(KylinConfig config) { this.curator = getZKClient(config); - this.zkPathBase = fixSlash("/kylin/" + KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix()); + this.zkPathBase = fixSlash(config.getZkBasePath() + KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix()); } @Override -- 1.7.1