From c1258152686641af056ecaae0b7428baed188522 Mon Sep 17 00:00:00 2001 From: yangzhong Date: Thu, 18 Feb 2016 10:21:38 +0800 Subject: [PATCH] KYLIN-1426: fix the bug: fail to locate kylin.propertiesi during cardinality calculation --- .../src/main/java/org/apache/kylin/rest/service/CubeService.java | 7 ++++--- .../kylin/source/hive/cardinality/HiveColumnCardinalityJob.java | 5 +++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java index c3a19f6..5d2776f 100644 --- a/server/src/main/java/org/apache/kylin/rest/service/CubeService.java +++ b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java @@ -41,6 +41,7 @@ import org.apache.kylin.engine.EngineFactory; import org.apache.kylin.engine.mr.CubingJob; import org.apache.kylin.engine.mr.HadoopUtil; import org.apache.kylin.engine.mr.common.HadoopShellExecutable; +import org.apache.kylin.engine.mr.common.MapReduceExecutable; import org.apache.kylin.job.exception.JobException; import org.apache.kylin.job.execution.DefaultChainedExecutable; import org.apache.kylin.job.execution.ExecutableState; @@ -498,10 +499,10 @@ public class CubeService extends BasicService { String outPath = HiveColumnCardinalityJob.OUTPUT_PATH + "/" + tableName; String param = "-table " + tableName + " -output " + outPath; - HadoopShellExecutable step1 = new HadoopShellExecutable(); + MapReduceExecutable step1 = new MapReduceExecutable(); - step1.setJobClass(HiveColumnCardinalityJob.class); - step1.setJobParams(param); + step1.setMapReduceJobClass(HiveColumnCardinalityJob.class); + step1.setMapReduceParams(param); job.addTask(step1); 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 51eb0ef..70286ab 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 @@ -35,7 +35,9 @@ import org.apache.kylin.engine.mr.MRUtil; import org.apache.kylin.engine.mr.common.AbstractHadoopJob; import org.apache.kylin.engine.mr.common.BatchConstants; import org.apache.kylin.job.engine.JobEngineConfig; +import org.apache.kylin.metadata.MetadataManager; import org.apache.kylin.metadata.model.DataModelDesc; +import org.apache.kylin.metadata.model.TableDesc; /** * This hadoop job will scan all rows of the hive table and then calculate the cardinality on each column. @@ -101,6 +103,9 @@ public class HiveColumnCardinalityJob extends AbstractHadoopJob { this.deletePath(job.getConfiguration(), output); logger.info("Going to submit HiveColumnCardinalityJob for table '" + table + "'"); + + TableDesc tableDesc = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv()).getTableDesc(table); + attachKylinPropsAndMetadata(tableDesc, job.getConfiguration()); int result = waitForCompletion(job); return result; -- 2.5.4 (Apple Git-61)