minor, create job work dir with Materialize Hive View in Lookup Tables job.


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/0ae39b5b
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/0ae39b5b
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/0ae39b5b

Branch: refs/heads/sync
Commit: 0ae39b5bb1cb05d3660ffb94c125cd8e85b91902
Parents: 7d5fb85
Author: yiming.xu <100650...@qq.com>
Authored: Tue Jan 16 14:04:10 2018 +0800
Committer: Li Yang <liy...@apache.org>
Committed: Fri Jan 26 22:54:58 2018 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/source/hive/HiveMRInput.java   | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/0ae39b5b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
----------------------------------------------------------------------
diff --git 
a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java 
b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
index e4564d0..6f42961 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
@@ -210,6 +210,9 @@ public class HiveMRInput implements IMRInput {
             if (lookupViewsTables.size() == 0) {
                 return null;
             }
+            // Create work dir to avoid hive create it,
+            // the difference is that the owners are different.
+            checkAndCreateWorkDir(jobWorkingDir);
 
             HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder();
             
hiveCmdBuilder.overwriteHiveProps(kylinConfig.getHiveConfigOverride());
@@ -239,6 +242,19 @@ public class HiveMRInput implements IMRInput {
             return step;
         }
 
+        private void checkAndCreateWorkDir(String jobWorkingDir) {
+            try {
+                Path path = new Path(jobWorkingDir);
+                FileSystem fileSystem = HadoopUtil.getFileSystem(path);
+                if (!fileSystem.exists(path)) {
+                    logger.info("Create jobWorkDir : " + jobWorkingDir);
+                    fileSystem.mkdirs(path);
+                }
+            } catch (IOException e) {
+                logger.error("Could not create lookUp table dir : " + 
jobWorkingDir);
+            }
+        }
+
         private AbstractExecutable createFlatHiveTableStep(String 
hiveInitStatements, String jobWorkingDir,
                 String cubeName) {
             //from hive to hive

Reply via email to