minor, add config kylin.cube.allow-appear-in-multiple-projects
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/6aaf6676 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/6aaf6676 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/6aaf6676 Branch: refs/heads/master-hbase1.x Commit: 6aaf6676b5e904260f16d1222bfe99013a095963 Parents: 2c4591a Author: Hongbin Ma <mahong...@apache.org> Authored: Mon Jan 23 11:31:38 2017 +0800 Committer: Hongbin Ma <mahong...@apache.org> Committed: Mon Jan 23 11:31:38 2017 +0800 ---------------------------------------------------------------------- .../main/java/org/apache/kylin/common/KylinConfigBase.java | 9 ++++++--- .../src/main/java/org/apache/kylin/engine/mr/CubingJob.java | 7 ++++++- 2 files changed, 12 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/6aaf6676/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 74903d5..05df177 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 @@ -181,7 +181,7 @@ abstract public class KylinConfigBase implements Serializable { if (!root.endsWith("/")) { root += "/"; } - + // make sure path qualified if (!root.contains("://")) { if (!root.startsWith("/")) @@ -189,7 +189,7 @@ abstract public class KylinConfigBase implements Serializable { else root = "hdfs://" + root; } - + return new StringBuffer(root).append(StringUtils.replaceChars(getMetadataUrlPrefix(), ':', '-')).append("/").toString(); } @@ -320,6 +320,10 @@ abstract public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.cube.max-building-segments", "10")); } + public boolean allowCubeAppearInMultipleProjects() { + return Boolean.parseBoolean(getOptional("kylin.cube.allow-appear-in-multiple-projects", "false")); + } + // ============================================================================ // JOB // ============================================================================ @@ -767,7 +771,6 @@ abstract public class KylinConfigBase implements Serializable { return Float.valueOf(getOptional("kylin.engine.spark.rdd-partition-cut-mb", "10.0")); } - public int getSparkMinPartition() { return Integer.valueOf(getOptional("kylin.engine.spark.min-partition", "1")); } http://git-wip-us.apache.org/repos/asf/kylin/blob/6aaf6676/engine-mr/src/main/java/org/apache/kylin/engine/mr/CubingJob.java ---------------------------------------------------------------------- diff --git a/engine-mr/src/main/java/org/apache/kylin/engine/mr/CubingJob.java b/engine-mr/src/main/java/org/apache/kylin/engine/mr/CubingJob.java index 64e9edb..5aa7d72 100644 --- a/engine-mr/src/main/java/org/apache/kylin/engine/mr/CubingJob.java +++ b/engine-mr/src/main/java/org/apache/kylin/engine/mr/CubingJob.java @@ -84,7 +84,12 @@ public class CubingJob extends DefaultChainedExecutable { if (projList == null || projList.size() == 0) { throw new RuntimeException("Cannot find the project containing the cube " + cube.getName() + "!!!"); } else if (projList.size() >= 2) { - throw new RuntimeException("Find more than one project containing the cube " + cube.getName() + ". It does't meet the uniqueness requirement!!! "); + String msg = "Find more than one project containing the cube " + cube.getName() + ". It does't meet the uniqueness requirement!!! "; + if (!config.getConfig().allowCubeAppearInMultipleProjects()) { + throw new RuntimeException(msg); + } else { + logger.warn(msg); + } } CubingJob result = new CubingJob();