Repository: kylin Updated Branches: refs/heads/1.5.x-CDH5.7 319d4ae98 -> 0c517678a (forced update)
KYLIN-1566 use a separate kylin_job_conf.xml for in-mem cubing Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/a63f959e Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/a63f959e Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/a63f959e Branch: refs/heads/1.5.x-CDH5.7 Commit: a63f959eb33a2638733817ac796a1f7c8cf89608 Parents: e80b13f Author: shaofengshi <shaofeng...@apache.org> Authored: Wed May 18 09:52:32 2016 +0800 Committer: shaofengshi <shaofeng...@apache.org> Committed: Wed May 18 10:39:35 2016 +0800 ---------------------------------------------------------------------- .../kylin/job/engine/JobEngineConfig.java | 9 +- .../kylin/engine/mr/JobBuilderSupport.java | 2 +- .../sandbox/kylin_job_conf_inmem.xml | 99 ++++++++++++++++++++ .../cardinality/HiveColumnCardinalityJob.java | 2 +- 4 files changed, 105 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/a63f959e/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java b/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java index baa3bfe..64e801e 100644 --- a/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java +++ b/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java @@ -77,13 +77,12 @@ public class JobEngineConfig { * @return the job config file path * @throws IOException */ - public String getHadoopJobConfFilePath(String jobType, String capacity) throws IOException { - String suffix; + public String getHadoopJobConfFilePath(String jobType) throws IOException { + String suffix = null; if(!StringUtils.isEmpty(jobType)) { - suffix = jobType + "_" + capacity; - } else { - suffix = capacity; + suffix = jobType; } + String path = getHadoopJobConfFilePath(suffix, true); if (StringUtils.isEmpty(path)) { path = getHadoopJobConfFilePath(jobType, true); http://git-wip-us.apache.org/repos/asf/kylin/blob/a63f959e/engine-mr/src/main/java/org/apache/kylin/engine/mr/JobBuilderSupport.java ---------------------------------------------------------------------- diff --git a/engine-mr/src/main/java/org/apache/kylin/engine/mr/JobBuilderSupport.java b/engine-mr/src/main/java/org/apache/kylin/engine/mr/JobBuilderSupport.java index 841c402..151d867 100644 --- a/engine-mr/src/main/java/org/apache/kylin/engine/mr/JobBuilderSupport.java +++ b/engine-mr/src/main/java/org/apache/kylin/engine/mr/JobBuilderSupport.java @@ -171,7 +171,7 @@ public class JobBuilderSupport { public void appendMapReduceParameters(StringBuilder buf, String jobType, String capacity) { try { - String jobConf = config.getHadoopJobConfFilePath(jobType, capacity); + String jobConf = config.getHadoopJobConfFilePath(jobType); if (jobConf != null && jobConf.length() > 0) { buf.append(" -conf ").append(jobConf); } http://git-wip-us.apache.org/repos/asf/kylin/blob/a63f959e/examples/test_case_data/sandbox/kylin_job_conf_inmem.xml ---------------------------------------------------------------------- diff --git a/examples/test_case_data/sandbox/kylin_job_conf_inmem.xml b/examples/test_case_data/sandbox/kylin_job_conf_inmem.xml new file mode 100644 index 0000000..5f2cfba --- /dev/null +++ b/examples/test_case_data/sandbox/kylin_job_conf_inmem.xml @@ -0,0 +1,99 @@ +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<configuration> + + <property> + <name>mapreduce.job.split.metainfo.maxsize</name> + <value>-1</value> + <description>The maximum permissible size of the split metainfo file. + The JobTracker won't attempt to read split metainfo files bigger than + the configured value. No limits if set to -1. + </description> + </property> + + <property> + <name>mapreduce.map.maxattempts</name> + <value>2</value> + </property> + + <!-- + <property> + <name>mapred.compress.map.output</name> + <value>true</value> + <description>Compress map outputs</description> + </property> + + <property> + <name>mapred.map.output.compression.codec</name> + <value>org.apache.hadoop.io.compress.SnappyCodec</value> + <description>The compression codec to use for map outputs + </description> + </property> + + <property> + <name>mapred.output.compress</name> + <value>true</value> + <description>Compress the output of a MapReduce job</description> + </property> + + <property> + <name>mapred.output.compression.codec</name> + <value>org.apache.hadoop.io.compress.SnappyCodec</value> + <description>The compression codec to use for job outputs + </description> + </property> + + <property> + <name>mapred.output.compression.type</name> + <value>BLOCK</value> + <description>The compression type to use for job outputs</description> + </property> +--> + + <property> + <name>mapreduce.job.max.split.locations</name> + <value>2000</value> + <description>No description</description> + </property> + + <property> + <name>dfs.replication</name> + <value>2</value> + <description>Block replication</description> + </property> + + <!--Additional config for in-mem cubing, giving mapper more memory --> + <property> + <name>mapreduce.map.memory.mb</name> + <value>512</value> + <description></description> + </property> + + <property> + <name>mapreduce.map.java.opts</name> + <value>-Xmx384m</value> + <description></description> + </property> + + <property> + <name>mapreduce.task.io.sort.mb</name> + <value>100</value> + <description></description> + </property> + +</configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/kylin/blob/a63f959e/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityJob.java ---------------------------------------------------------------------- diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityJob.java b/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityJob.java index e6aca4e..c613ef6 100644 --- a/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityJob.java +++ b/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityJob.java @@ -71,7 +71,7 @@ public class HiveColumnCardinalityJob extends AbstractHadoopJob { Configuration conf = getConf(); JobEngineConfig jobEngineConfig = new JobEngineConfig(KylinConfig.getInstanceFromEnv()); - conf.addResource(new Path(jobEngineConfig.getHadoopJobConfFilePath(null, null))); + conf.addResource(new Path(jobEngineConfig.getHadoopJobConfFilePath(null))); job = Job.getInstance(conf, jobName);