You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by bi...@apache.org on 2017/02/23 07:28:18 UTC
[04/11] kylin git commit: KYLIN-2459 Make ResourceStore configable
KYLIN-2459 Make ResourceStore configable
Signed-off-by: Hongbin Ma <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/82f68035
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/82f68035
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/82f68035
Branch: refs/heads/master-hbase0.98
Commit: 82f68035ceee222905e8daf443dd99585fbc4428
Parents: 6f35b62
Author: xiefan46 <95...@qq.com>
Authored: Wed Feb 22 18:07:49 2017 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Wed Feb 22 20:49:04 2017 +0800
----------------------------------------------------------------------
.../java/org/apache/kylin/common/KylinConfigBase.java | 5 +++++
.../apache/kylin/common/persistence/ResourceStore.java | 12 ++++--------
2 files changed, 9 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/82f68035/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
----------------------------------------------------------------------
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 13d967d..1c26c63 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
@@ -957,4 +957,9 @@ abstract public class KylinConfigBase implements Serializable {
return getOptional("kylin.storage.lock-manager-zk-port", "2181");
}
+ //ResourceStore Impl
+ public String getResourceStoreImpl() {
+ return getOptional("kylin.metadata.default-resource-store-impl", "org.apache.kylin.storage.hbase.HBaseResourceStore");
+ }
+
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/82f68035/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java b/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
index c441618..77143b0 100644
--- a/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
+++ b/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
@@ -70,19 +70,15 @@ abstract public class ResourceStore {
private static final ArrayList<Class<? extends ResourceStore>> knownImpl = new ArrayList<Class<? extends ResourceStore>>();
- private static ArrayList<Class<? extends ResourceStore>> getKnownImpl() {
+ private static ArrayList<Class<? extends ResourceStore>> getKnownImpl(KylinConfig kylinConfig) {
if (knownImpl.isEmpty()) {
knownImpl.add(FileResourceStore.class);
try {
- knownImpl.add(ClassUtil.forName("org.apache.kylin.storage.hbase.HBaseResourceStore", ResourceStore.class));
+ String implName = kylinConfig.getResourceStoreImpl();
+ knownImpl.add(ClassUtil.forName(implName, ResourceStore.class));
} catch (Throwable e) {
logger.warn("Failed to load HBaseResourceStore impl class: " + e.toString());
}
- try {
- knownImpl.add(ClassUtil.forName("org.apache.kylin.storage.hdfs.HDFSResourceStore", ResourceStore.class));
- } catch (Throwable e) {
- logger.warn("Failed to load HDFSResourceStore impl class: " + e.toString());
- }
}
return knownImpl;
}
@@ -90,7 +86,7 @@ abstract public class ResourceStore {
private static ResourceStore createResourceStore(KylinConfig kylinConfig) {
List<Throwable> es = new ArrayList<Throwable>();
logger.info("Using metadata url " + kylinConfig.getMetadataUrl() + " for resource store");
- for (Class<? extends ResourceStore> cls : getKnownImpl()) {
+ for (Class<? extends ResourceStore> cls : getKnownImpl(kylinConfig)) {
try {
return cls.getConstructor(KylinConfig.class).newInstance(kylinConfig);
} catch (Throwable e) {