Repository: kylin
Updated Branches:
  refs/heads/master 6f6dcf00c -> 4018e6671


KYLIN-1758 should set hive conf when creating materialized tables


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

Branch: refs/heads/master
Commit: 4018e6671f6f4e23f4493286881fa47f302c6372
Parents: 6f6dcf0
Author: shaofengshi <shaofeng...@apache.org>
Authored: Sat Jun 4 20:58:30 2016 +0800
Committer: shaofengshi <shaofeng...@apache.org>
Committed: Sat Jun 4 20:58:30 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/job/JoinedFlatTable.java   | 25 +++++++++-----------
 .../kylin/provision/BuildIIWithStream.java      |  7 +-----
 .../apache/kylin/source/hive/HiveMRInput.java   | 20 ++++------------
 3 files changed, 16 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/4018e667/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
----------------------------------------------------------------------
diff --git a/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java 
b/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
index d625ad7..24032fa 100644
--- a/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
+++ b/core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
@@ -55,15 +55,16 @@ public class JoinedFlatTable {
         return storageDfsDir + "/" + intermediateTableDesc.getTableName();
     }
 
-    public static String generateHiveSetStatements(JobEngineConfig 
engineConfig) throws IOException {
+    public static String generateHiveSetStatements(JobEngineConfig 
engineConfig) {
         StringBuilder buffer = new StringBuilder();
-        File hadoopPropertiesFile = new 
File(engineConfig.getHiveConfFilePath());
 
-        if (hadoopPropertiesFile.exists()) {
-            DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
-            DocumentBuilder builder;
-            Document doc;
-            try {
+        try {
+            File hadoopPropertiesFile = new 
File(engineConfig.getHiveConfFilePath());
+
+            if (hadoopPropertiesFile.exists()) {
+                DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
+                DocumentBuilder builder;
+                Document doc;
                 builder = factory.newDocumentBuilder();
                 doc = builder.parse(hadoopPropertiesFile);
                 NodeList nl = doc.getElementsByTagName("property");
@@ -74,14 +75,10 @@ public class JoinedFlatTable {
                         buffer.append("SET " + name + "=" + value + ";\n");
                     }
                 }
-
-            } catch (ParserConfigurationException e) {
-                throw new IOException(e);
-            } catch (SAXException e) {
-                throw new IOException(e);
             }
+        } catch (Exception e) {
+            throw new RuntimeException("Failed to parse hive conf file ", e);
         }
-
         return buffer.toString();
     }
 
@@ -114,7 +111,7 @@ public class JoinedFlatTable {
         return ddl.toString();
     }
 
-    public static String generateInsertDataStatement(IJoinedFlatTableDesc 
intermediateTableDesc, JobEngineConfig engineConfig) throws IOException {
+    public static String generateInsertDataStatement(IJoinedFlatTableDesc 
intermediateTableDesc, JobEngineConfig engineConfig) {
         StringBuilder sql = new StringBuilder();
         sql.append(generateHiveSetStatements(engineConfig));
         sql.append("INSERT OVERWRITE TABLE " + 
intermediateTableDesc.getTableName() + " " + 
generateSelectDataStatement(intermediateTableDesc) + ";").append("\n");

http://git-wip-us.apache.org/repos/asf/kylin/blob/4018e667/kylin-it/src/test/java/org/apache/kylin/provision/BuildIIWithStream.java
----------------------------------------------------------------------
diff --git 
a/kylin-it/src/test/java/org/apache/kylin/provision/BuildIIWithStream.java 
b/kylin-it/src/test/java/org/apache/kylin/provision/BuildIIWithStream.java
index c0f6f63..1a335c6 100644
--- a/kylin-it/src/test/java/org/apache/kylin/provision/BuildIIWithStream.java
+++ b/kylin-it/src/test/java/org/apache/kylin/provision/BuildIIWithStream.java
@@ -148,12 +148,7 @@ public class BuildIIWithStream {
         final String dropTableHql = 
JoinedFlatTable.generateDropTableStatement(intermediateTableDesc);
         final String createTableHql = 
JoinedFlatTable.generateCreateTableStatement(intermediateTableDesc, 
JobBuilderSupport.getJobWorkingDir(jobEngineConfig, uuid));
         String insertDataHqls;
-        try {
-            insertDataHqls = 
JoinedFlatTable.generateInsertDataStatement(intermediateTableDesc, 
jobEngineConfig);
-        } catch (IOException e1) {
-            e1.printStackTrace();
-            throw new RuntimeException("Failed to generate insert data SQL for 
intermediate table.");
-        }
+        insertDataHqls = 
JoinedFlatTable.generateInsertDataStatement(intermediateTableDesc, 
jobEngineConfig);
 
         ShellExecutable step = new ShellExecutable();
         HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder();

http://git-wip-us.apache.org/repos/asf/kylin/blob/4018e667/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 0c33c11..76dda34 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
@@ -120,7 +120,6 @@ public class HiveMRInput implements IMRInput {
             }
             jobFlow.addTask(createCountHiveTableStep(conf, flatHiveTableDesc, 
jobFlow.getId(), rowCountOutputDir));
             jobFlow.addTask(createFlatHiveTableStep(conf, flatHiveTableDesc, 
jobFlow.getId(), cubeName, rowCountOutputDir));
-//            jobFlow.addTask(createFlatHiveTableStep(conf, flatHiveTableDesc, 
jobFlow.getId()));
             AbstractExecutable task = 
createLookupHiveViewMaterializationStep(jobFlow.getId());
             if(task != null) {
                 jobFlow.addTask(task);
@@ -131,11 +130,7 @@ public class HiveMRInput implements IMRInput {
             final ShellExecutable step = new ShellExecutable();
 
             final HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder();
-            try {
-                
hiveCmdBuilder.addStatement(JoinedFlatTable.generateHiveSetStatements(conf));
-            } catch (IOException e) {
-                throw new RuntimeException("Failed to generate hive set 
statements for createCountHiveTableStep", e);
-            }
+            
hiveCmdBuilder.addStatement(JoinedFlatTable.generateHiveSetStatements(conf));
             hiveCmdBuilder.addStatement("set 
hive.exec.compress.output=false;\n");
             
hiveCmdBuilder.addStatement(JoinedFlatTable.generateCountDataStatement(flatTableDesc,
 rowCountOutputDir));
 
@@ -168,6 +163,7 @@ public class HiveMRInput implements IMRInput {
             }
             final String useDatabaseHql = "USE " + 
conf.getConfig().getHiveDatabaseForIntermediateTable() + ";";
             hiveCmdBuilder.addStatement(useDatabaseHql);
+            
hiveCmdBuilder.addStatement(JoinedFlatTable.generateHiveSetStatements(conf));
             for(TableDesc lookUpTableDesc : lookupViewsTables) {
                 if 
(TableDesc.TABLE_TYPE_VIRTUAL_VIEW.equalsIgnoreCase(lookUpTableDesc.getTableType()))
 {
                     StringBuilder createIntermediateTableHql = new 
StringBuilder();
@@ -190,21 +186,13 @@ public class HiveMRInput implements IMRInput {
 
         public static AbstractExecutable 
createFlatHiveTableStep(JobEngineConfig conf, IJoinedFlatTableDesc 
flatTableDesc, String jobId, String cubeName, String rowCountOutputDir) {
             StringBuilder hiveInitBuf = new StringBuilder();
-            try {
-                
hiveInitBuf.append(JoinedFlatTable.generateHiveSetStatements(conf));
-            } catch (IOException e) {
-                throw new RuntimeException("Failed to generate hive set 
statements for RedistributeFlatHiveTableStep", e);
-            }
+            
hiveInitBuf.append(JoinedFlatTable.generateHiveSetStatements(conf));
 
             final String useDatabaseHql = "USE " + 
conf.getConfig().getHiveDatabaseForIntermediateTable() + ";";
             final String dropTableHql = 
JoinedFlatTable.generateDropTableStatement(flatTableDesc);
             final String createTableHql = 
JoinedFlatTable.generateCreateTableStatement(flatTableDesc, 
JobBuilderSupport.getJobWorkingDir(conf, jobId));
             String insertDataHqls;
-            try {
-                insertDataHqls = 
JoinedFlatTable.generateInsertDataStatement(flatTableDesc, conf);
-            } catch (IOException e) {
-                throw new RuntimeException("Failed to generate insert data SQL 
for intermediate table.", e);
-            }
+            insertDataHqls = 
JoinedFlatTable.generateInsertDataStatement(flatTableDesc, conf);
 
             CreateFlatHiveTableStep step = new CreateFlatHiveTableStep();
             step.setInitStatement(hiveInitBuf.toString());

Reply via email to