You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2015/02/27 07:25:14 UTC

[01/41] incubator-kylin git commit: Use standard method to parse json in CubeMetadataUpgrade.java

Repository: incubator-kylin
Updated Branches:
  refs/heads/inverted-index 355a09b58 -> 2b53d6603


Use standard method to parse json in CubeMetadataUpgrade.java

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

Branch: refs/heads/inverted-index
Commit: 47ab1d6306b2b02cd2117e19b6c3e3990452d6d1
Parents: 8245337
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Thu Feb 12 14:25:38 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Thu Feb 12 14:25:38 2015 +0800

----------------------------------------------------------------------
 .../apache/kylin/job/CubeMetadataUpgrade.java   | 25 +++++++-------------
 1 file changed, 9 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/47ab1d63/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java b/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
index eada010..fadaa8c 100644
--- a/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
+++ b/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
@@ -21,9 +21,6 @@ package org.apache.kylin.job;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
@@ -41,7 +38,7 @@ import org.apache.kylin.cube.model.v1.CubeInstance;
 import org.apache.kylin.cube.model.v1.CubeSegment;
 import org.apache.kylin.cube.model.v1.CubeSegmentStatusEnum;
 import org.apache.kylin.cube.model.v1.CubeStatusEnum;
-import org.apache.kylin.dict.*;
+import org.apache.kylin.dict.DictionaryManager;
 import org.apache.kylin.dict.lookup.SnapshotManager;
 import org.apache.kylin.dict.lookup.SnapshotTable;
 import org.apache.kylin.dict.lookup.TableReader;
@@ -72,7 +69,6 @@ import org.apache.kylin.metadata.realization.RealizationType;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -108,7 +104,7 @@ public class CubeMetadataUpgrade {
         upgradeCubeDesc();
         upgradeProjectInstance();
         upgradeCubeInstance();
-        upgradeJobInstance();
+      //  upgradeJobInstance();
 
         verify();
 
@@ -121,6 +117,7 @@ public class CubeMetadataUpgrade {
         CubeManager cubeManager = CubeManager.getInstance(config);
         ProjectManager.getInstance(config);
 
+        /*
         DictionaryManager dictManager = DictionaryManager.getInstance(config);
         SnapshotManager snapshotManager = SnapshotManager.getInstance(config);
         List<org.apache.kylin.cube.CubeInstance> allCubes = cubeManager.listAllCubes();
@@ -152,6 +149,7 @@ public class CubeMetadataUpgrade {
             }
 
         }
+        */
     }
 
     private List<String> listResourceStore(String pathRoot) {
@@ -499,18 +497,13 @@ public class CubeMetadataUpgrade {
         for (int i = 0, size = job.getSteps().size(); i < size; ++i) {
             final JobInstance.JobStep jobStep = job.getSteps().get(i);
             final InputStream inputStream = getStore().getResource(ResourceStore.JOB_OUTPUT_PATH_ROOT + "/" + job.getId() + "." + i);
+
             String output = null;
             if (inputStream != null) {
-                JsonElement json = new JsonParser().parse(new InputStreamReader(inputStream));
-                if (json instanceof JsonObject) {
-                    final JsonElement element = ((JsonObject) json).get("output");
-                    if (element != null) {
-                        output = element.getAsString();
-                    } else {
-                        output = json.getAsString();
-                    }
-                } else {
-                    output = json.getAsString();
+                HashMap<String, String> job_output = JsonUtil.readValue(inputStream, HashMap.class);
+
+                if (job_output != null) {
+                    output = job_output.get("output");
                 }
             }
             updateJobStepOutput(jobStep, output, cubingJob.getTasks().get(i));


[04/41] incubator-kylin git commit: Revert "Remove corporate info"

Posted by li...@apache.org.
Revert "Remove corporate info"

This reverts commit 40ff1cda4b6589aa5ff68541ae670f7e42e5a132.


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

Branch: refs/heads/inverted-index
Commit: 524b8252b2ed00bbc4ab9ff2af62d71adb35ebca
Parents: b9c738a
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Thu Feb 12 14:26:46 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Thu Feb 12 14:26:46 2015 +0800

----------------------------------------------------------------------
 .../64ac4f82-f2af-476e-85b9-f0805001014e.dict        | Bin 0 -> 554 bytes
 .../f5e85644-db92-42b5-9ad5-240ab227d7b0.dict        | Bin 0 -> 554 bytes
 jdbc/pom.xml                                         |   5 +++++
 .../kylin/job/hadoop/hbase/TestHbaseClient.java      |   2 +-
 4 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/524b8252/examples/test_case_data/localmeta/dict/PREDEFINED/date(yyyy-mm-dd)/64ac4f82-f2af-476e-85b9-f0805001014e.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/PREDEFINED/date(yyyy-mm-dd)/64ac4f82-f2af-476e-85b9-f0805001014e.dict b/examples/test_case_data/localmeta/dict/PREDEFINED/date(yyyy-mm-dd)/64ac4f82-f2af-476e-85b9-f0805001014e.dict
new file mode 100644
index 0000000..36da380
Binary files /dev/null and b/examples/test_case_data/localmeta/dict/PREDEFINED/date(yyyy-mm-dd)/64ac4f82-f2af-476e-85b9-f0805001014e.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/524b8252/examples/test_case_data/localmeta/dict/PREDEFINED/date(yyyy-mm-dd)/f5e85644-db92-42b5-9ad5-240ab227d7b0.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/PREDEFINED/date(yyyy-mm-dd)/f5e85644-db92-42b5-9ad5-240ab227d7b0.dict b/examples/test_case_data/localmeta/dict/PREDEFINED/date(yyyy-mm-dd)/f5e85644-db92-42b5-9ad5-240ab227d7b0.dict
new file mode 100644
index 0000000..5c9af56
Binary files /dev/null and b/examples/test_case_data/localmeta/dict/PREDEFINED/date(yyyy-mm-dd)/f5e85644-db92-42b5-9ad5-240ab227d7b0.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/524b8252/jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index 606e340..a1dce3c 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -22,6 +22,11 @@
 	<artifactId>kylin-jdbc</artifactId>
 	<packaging>jar</packaging>
 
+	<!-- More project information. -->
+	<name>Kylin:Jdbc</name>
+	<description>kylin jdbc on optiq avatica</description>
+	<url>https://github.scm.corp.ebay.com/BIPlatform/Kylin</url>
+
 	<parent>
 		<groupId>org.apache.kylin</groupId>
 		<artifactId>kylin</artifactId>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/524b8252/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java b/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java
index a92da92..4fd64e5 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java
@@ -87,7 +87,7 @@ public class TestHbaseClient {
         foo(3, 0);
 
         Configuration conf = HBaseConfiguration.create();
-        conf.set("hbase.zookeeper.quorum", "hbase_host");
+        conf.set("hbase.zookeeper.quorum", "yadesk00.corp.ebay.com");
         conf.set("zookeeper.znode.parent", "/hbase-unsecure");
 
         HTable table = new HTable(conf, "test1");


[22/41] incubator-kylin git commit: Merge branch 'streaming' of https://github.com/KylinOLAP/Kylin into streaming

Posted by li...@apache.org.
Merge branch 'streaming' of https://github.com/KylinOLAP/Kylin into streaming


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

Branch: refs/heads/inverted-index
Commit: 21e78204ebb0b2b9a2057b5fded9e495097d1e84
Parents: c130f7c ba4f737
Author: qianhao.zhou <qi...@ebay.com>
Authored: Fri Feb 13 11:49:28 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Fri Feb 13 11:49:28 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    | 31 ++++++++++-----
 .../org/apache/kylin/common/util/BasicTest.java |  7 ++--
 .../invertedindex/index/TableRecordInfo.java    |  7 ++--
 .../kylin/invertedindex/model/IIDesc.java       | 40 ++++++++++++++------
 .../kylin/job/engine/JobEngineConfig.java       | 38 -------------------
 .../java/org/apache/kylin/job/DeployUtil.java   | 18 ++++++---
 .../measure/fixedlen/FixedHLLCodec.java         |  2 +-
 .../measure/fixedlen/FixedLenMeasureCodec.java  |  8 ++--
 .../apache/kylin/metadata/model/DataType.java   |  1 +
 .../kylin/metadata/model/FunctionDesc.java      | 12 +++---
 .../AdjustForWeeklyMatchedRealization.java      |  8 ++--
 .../apache/kylin/query/test/IIQueryTest.java    | 11 ------
 .../apache/kylin/query/test/KylinQueryTest.java |  7 +---
 .../apache/kylin/query/test/KylinTestBase.java  |  1 -
 .../resources/query/sql_fast_common/query00.sql |  5 +++
 .../query_count_distinct_on_dimension.sql       |  1 -
 ...ery_count_distinct_on_dimension.sql.disabled |  2 +
 .../kylin/storage/hbase/CubeStorageEngine.java  |  2 +-
 .../hbase/coprocessor/CoprocessorConstants.java |  2 +-
 .../endpoint/EndpointAggregators.java           | 25 +++++++-----
 .../endpoint/EndpointTupleIterator.java         | 22 ++++++++---
 21 files changed, 129 insertions(+), 121 deletions(-)
----------------------------------------------------------------------



[06/41] incubator-kylin git commit: add download page

Posted by li...@apache.org.
add download page


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

Branch: refs/heads/inverted-index
Commit: 26c8d8137e2ccf0cf334966530160ece4db77112
Parents: ed729ee
Author: lukehan <lu...@apache.org>
Authored: Thu Feb 12 15:40:15 2015 +0800
Committer: lukehan <lu...@apache.org>
Committed: Thu Feb 12 15:40:15 2015 +0800

----------------------------------------------------------------------
 docs/website/_includes/header.cn.html |    1 +
 docs/website/_includes/header.html    |    1 +
 docs/website/assets/css/styles.css    | 1303 ++++++++++++++--------------
 docs/website/download/index.md        |   45 +
 4 files changed, 699 insertions(+), 651 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/26c8d813/docs/website/_includes/header.cn.html
----------------------------------------------------------------------
diff --git a/docs/website/_includes/header.cn.html b/docs/website/_includes/header.cn.html
index 63cd04a..7e14a32 100644
--- a/docs/website/_includes/header.cn.html
+++ b/docs/website/_includes/header.cn.html
@@ -25,6 +25,7 @@
           <li><a href="/docs" >文档</a></li>
           <li><a href="/community" >社区</a></li>
           <li><a href="/blog">博客</li>
+          <li><a href="/download">下载</li>
           <li><a href="/about" >关于</a></li>
           <li><a href="/" >English</a></li>
           <li><a href="https://twitter.com/apachekylin" target="_blank" class="fa fa-twitter fa-lg" title="Twitter: @ApacheKylin" ></a></li>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/26c8d813/docs/website/_includes/header.html
----------------------------------------------------------------------
diff --git a/docs/website/_includes/header.html b/docs/website/_includes/header.html
index 1745744..7753f5b 100644
--- a/docs/website/_includes/header.html
+++ b/docs/website/_includes/header.html
@@ -30,6 +30,7 @@
           <li><a href="/docs" >Docs</a></li>
           <li><a href="/community" >Community</a></li>
           <li><a href="/blog">Blog</li>
+          <li><a href="/download">Download</li>
           <li><a href="/about" >About</a></li>
           <li><a href="/cn" >中文版</a></li>  
           <li><a href="https://twitter.com/apachekylin" target="_blank" class="fa fa-twitter fa-lg" title="Twitter: @ApacheKylin" ></a></li>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/26c8d813/docs/website/assets/css/styles.css
----------------------------------------------------------------------
diff --git a/docs/website/assets/css/styles.css b/docs/website/assets/css/styles.css
index e2e080e..8b6e1af 100644
--- a/docs/website/assets/css/styles.css
+++ b/docs/website/assets/css/styles.css
@@ -1,651 +1,652 @@
-@font-face {
-	font-family: 'HelveticaNeueLight';
-	src: url('../fonts/helveticaneue_lt.eot');
-	src: url('../fonts/helveticaneue_lt.eot') format('embedded-opentype'),  url('../fonts/helveticaneue_lt.woff') format('woff'),  url('../fonts/helveticaneue_lt.ttf') format('truetype'),  url('../fonts/helveticaneue_lt.svg#HelveticaNeueLight') format('svg');
-}
-@font-face {
-	font-family: 'HelveticaNeueRegular';
-	src: url('../fonts/helveticaneue-webfont.eot');
-	src: url('../fonts/helveticaneue-webfont.eot') format('embedded-opentype'),  url('../fonts/helveticaneue-webfont.woff') format('woff'),  url('../fonts/helveticaneue-webfont.ttf') format('truetype'),  url('../fonts/helveticaneue-webfont.svg#HelveticaNeueRegular') format('svg');
-}
-/*@font-face {
-    font-family: 'open_sanslight';
-    src: url('../fonts/opensans-light-webfont.eot');
-    src: url('../fonts/opensans-light-webfont.eot?#iefix') format('embedded-opentype'),
-         url('../fonts/opensans-light-webfont.woff') format('woff'),
-         url('../fonts/opensans-light-webfont.ttf') format('truetype'),
-         url('../fonts/opensans-light-webfont.svg#open_sanslight') format('svg');
-    font-weight: normal;
-    font-style: normal;
-
-}
-
-@font-face {
-    font-family: 'open_sansregular';
-    src: url('../fonts/opensans-regular-webfont.eot');
-    src: url('../fonts/opensans-regular-webfont.eot?#iefix') format('embedded-opentype'),
-         url('../fonts/opensans-regular-webfont.woff') format('woff'),
-         url('../fonts/opensans-regular-webfont.ttf') format('truetype'),
-         url('../fonts/opensans-regular-webfont.svg#open_sansregular') format('svg');
-    font-weight: normal;
-    font-style: normal;
-
-}
-*/
-
-
-
-html {
-	font-size: 100%;
-}
-body {
-	font-size: 14px;
-	font-size: 0.9375rem;
-	font-family: 'Open sans', 'HelveticaNeueRegular', Arial, sans-serif;
-	color: #666666;
-	font-weight: 400;
-	padding: 0;
-}
-.topspace {
-	margin-top: 40px;
-}
-p {
-	line-height: 1.6em;
-	margin: 0 0 30px 0;
-}
-.title_text {
-	font-size: 1.1em !important;
-}
-.big_text {
-	font-size: 1.7em !important;
-	font-family: 'Open sans';
-	font-weight: 300;
-}
-.normal_text {
-	font-size: 1.3em !important;
-	font-family: 'Open sans';
-	font-weight: 600;
-}
-ul, ol {
-	line-height: 1.6em;
-	margin: 0 0 30px 0;
-}
-h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
-	font-family: 'Open sans', 'HelveticaNeueRegular', Arial, sans-serif;
-	font-weight: 400;
-	color: #333333;
-}
-h1 {
-	font-size: 40px;
-	font-size: 2.5rem;
-}
-h2 {
-	font-size: 36px;
-	font-size: 2.25rem;
-}
-h3 {
-	font-size: 30px;
-	font-size: 1.875rem;
-}
-h4 {
-	font-size: 24px;
-	font-size: 1.5rem;
-}
-h5 {
-	font-size: 20px;
-	font-size: 1.25rem;
-}
-a {
-	color: #2679f4;
-	-webkit-transition: 0.25s;
-	-moz-transition: 0.25s;
-	-o-transition: 0.25s;
-	transition: 0.25s;
-}
-a:hover, a:focus {
-	cursor: pointer;
-	color: #2062c4;
-	text-decoration: none;
-}
-/*********************************************************************
- 
-
-                                HEADER
-
-
-**********************************************************************/
-#head {
-	background: #f4f4f4 url(../images/data.png) top center;
-	background-size: cover;
-	color: #7C7C7C;
-	height: 200px;	
-}
-#head .title {
-	font-family: 'Open sans';
-	font-weight: 400;
-	font-size: 49px;
-	font-size: 3.0625rem;/*	background-image: -webkit-gradient( linear, left bottom, right bottom, color-stop(0, #C6419E), color-stop(1, #6382FF) );
-	background-image: -o-linear-gradient(right, #C6419E 0%, #6382FF 100%);
-	background-image: -moz-linear-gradient(right, #C6419E 0%, #6382FF 100%);
-	background-image: -webkit-linear-gradient(right, #C6419E 0%, #6382FF 100%);
-	background-image: -ms-linear-gradient(right, #C6419E 0%, #6382FF 100%);
-	background-image: linear-gradient(to right, #C6419E 0%, #6382FF 100%);
-	-webkit-background-clip: text;
-	-webkit-text-fill-color: transparent;*/
-  
-}
-#head img.img-circle {
-	display: block;
-	width: 100px;
-	height: 100px;
-	overflow: hidden;
-	border: 9px solid rgba(0, 0, 0, 0.05);
-	margin: 0 auto;
-}
-#head .title a {
-	text-decoration: none;
-	color: #333333;
-}
-#head .tagline {
-	display: block;
-	font-size: 14px;
-	font-size: 1.1rem;
-	line-height: 1.2em;
-	color: #7C7C7C;
-	margin: 5px 0 0;
-}
-#head .tagline b {
-	font-weight: normal;
-}
-#head .tagline a {
-	color: #5E5E5E;
-}
-#logo {
-	padding-top: 0px;
-	padding-left: 10px;
-}
-.home #head .title {
-	font-size: 18px;
-	color: #fb8d08;/*color:#146df3;*/
-	
-}
-#download {
-	text-align: center;
-	padding: 20px;
-	font-size: 16px;
-	font-weight: 500;
-	width: 150px;
-	margin: 30px auto;
-	padding: 0.6em 0.8em;
-	color: #333;
-	/*background: rgba(38,121,244,0.8);*/
-	border: 1px solid #333;
-	-webkit-animation-delay: 1s;
-	-ms-animation-delay: 1s;
-	-moz-animation-delay: 1s;
-	-o-animation-delay: 1s;
-	animation-delay: 1s;
-	text-shadow: none;
-	text-transform: uppercase;
- transparent!important
-}
-#download a {
-	color: #333;
-}
-#download:hover {
-	border: 1px solid #5c5c5c;
-	opacity: 0.8;
-}
-/*********************************************************************
- 
-
-                            NAVBAR 
-
-
-**********************************************************************/
-.navbar {
-	/*
-	background: #f4f4f4 url(../images/data.png) top center;
-	background-size: cover;
-	color: #7C7C7C;
-	height: 100px;
-*/
-	 border-width: 1px 0;
-	-webkit-border-radius: 0;
-	-webkit-background-clip: padding-box;
-	-moz-border-radius: 0;
-	-moz-background-clip: padding;
-	border-radius: 0;
-	background-clip: padding-box;
-	width: 100%;
-
-}
-.navbar.stick {
-	position: fixed;
-	top: 0;
-	left: 0;
-	opacity: .95;
-}
-.navbar-collapse {
-	-webkit-border-radius: 0;
-	-webkit-background-clip: padding-box;
-	-moz-border-radius: 0;
-	-moz-background-clip: padding;
-	border-radius: 0;
-	background-clip: padding-box;
-	font-family: 'Open sans';
-	font-weight: 400;
-	/* text-transform: uppercase;*/
-}
-.navbar-nav {
-	float: none;
-	margin: 0 auto;
-	text-align: right;
-}
-.navbar-nav > li {
-	float: none;
-	display: inline-block;
-}
-.navbar-nav > li > a {
-	padding: 10px 12px;
-}
-.navbar-default {
-	background-color: #ffffff;
-	border-color: #cccccc;
-}
-.navbar-default .navbar-nav > li > a {
-	color: #454545;
-}
-.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
-	color: #000000;
-	background-color: #ffffff;
-}
-.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
-	color: #000000;
-	background-color: #ffffff;
-}
-.navbar-default .dropdown ul.dropdown-menu > li > a {
-	color: #454545;
-}
-.navbar-default .dropdown ul.dropdown-menu > li > a:hover {
-	background-color: #eeeeee;
-	color: #000000;
-}
-/*.top-logo {
-	background-image: -webkit-gradient(  linear,  left bottom,  right bottom,  color-stop(0, #C6419E),  color-stop(1, #6382FF) );
-	background-image: -o-linear-gradient(right, #C6419E 0%, #6382FF 100%);
-	background-image: -moz-linear-gradient(right, #C6419E 0%, #6382FF 100%);
-	background-image: -webkit-linear-gradient(right, #C6419E 0%, #6382FF 100%);
-	background-image: -ms-linear-gradient(right, #C6419E 0%, #6382FF 100%);
-	background-image: linear-gradient(to right, #C6419E 0%, #6382FF 100%);
-	-webkit-background-clip: text;
-	-webkit-text-fill-color: transparent;
-}*/
-.top-logo-border {
-	background-color: #efefef;
-	width: 3em;
-	height: 3em;
-	border-radius: 1.5em;
-}
-/*********************************************************************************/
-/* Main Sections                                                                 */
-/*********************************************************************************/
-
-.main {
-	position: relative;
-	margin: 0;
-	font-family: 'Open sans';
-	font-weight: 300;
-}
-.indent {
-	margin-left: 40px;
-	line-height: 1.8em
-}
-.main p {
-	margin-top: 1.25em;
-	font-size: 1.04em;
-	font-weight: 100;
-	padding: 0;
-	line-height: 2em;
-}
-.main p a {
-	color: #2679f4;
-	-webkit-transition: 0.25s;
-	transition: 0.25s;
-}
-.main p a:hover, a:focus {
-	cursor: pointer;
-	color: #2062c4;
-	text-decoration: none;
-}
-.main > header {
-	background: #fff;
-	text-align: center;
-	padding: 4em 0 4em 0;
-	margin: 0;
-}
-.main > header h2 {
-	font-size: 2.25em;
-	font-weight: 300;
-	margin-bottom: 0;
-}
-.main > header p {
-	margin: 2em 0 0 0;
-	padding: 0;
-	text-align: left;
-	line-height: 1.5em
-}
-.less-margin {
-	margin-top: 1em !important;
-}
-.main > .content {
-	padding: 6em 0 6em 0;
-}
-.main > .content > .container {
-}
-.main > .content h3 {
-	font-size: 1.5em;
-}
-/*********************************************************************
- 
-
-                                CONTENT
-
-
-**********************************************************************/
-
-.circle {
-	width: 8em;
-	height: 8em;
-	border-radius: 4em;
-	text-align: center;
-	margin: 0 auto;
-	border: 1px solid #333;
-	padding-top: 2em;
-}
-.circle-icon {
-	font-size: 4.3em;
-	text-align: center;
-	vertical-align: middle;
-	padding-top: 0.5em;
-	color: #666666;
-}
-.version:hover {
-	opacity: .7;
-	-webkit-transition: 0.25s;
-	-moz-transition: 0.25s;
-	-o-transition: 0.25s;
-	transition: 0.25s;
-}
-.biggericon {
-	font-size: 58px;
-}
-#lessmargin {
-	margin-top: 1.4em;
-}
-img {
-	max-width: 100%;
-}
-.section-title, .entry-title {
-	display: block;
-	width: 100%;
-	overflow: hidden;
-	margin: 0px 0 25px;
-	text-align: center;
-	font-weight: 300;
-	text-transform: uppercase;
-	font-size: 36px;
-	font-size: 1.8rem;
-	letter-spacing: 1px;
-}
-.section-title a, .entry-title a {
-	color: #333333;
-}
-.section-title span, .entry-title span {
-	display: inline-block;
-	position: relative;
-}
-.section-title span:before, .entry-title span:before, .section-title span:after, .entry-title span:after {
-	content: "";
-	position: absolute;
-	height: 4px;
-	top: .53em;
-	width: 400%;
-	border-bottom: 1px solid #ccc;
-	border-top: 1px solid #ccc;
-}
-.section-title span:before, .entry-title span:before {
-	right: 100%;
-	margin-right: 45px;
-}
-.section-title span:after, .entry-title span:after {
-	left: 100%;
-	margin-left: 45px;
-}
-.entry-header .entry-meta {
-	text-align: center;
-	font-family: Georgia, serif;
-	font-size: 18px;
-	font-size: 1.125rem;
-	font-style: italic;
-	font-weight: normal;
-	color: #a5a5a5;
-	margin: 0 0 15px 0;
-}
-.entry-header .entry-meta a {
-	color: #a5a5a5;
-}
-.entry-content {
-	margin: 0 0 60px 0;
-}
-.code-lan {
-	font-family: "Open sans", Helvetica, Arial, sans-serif;
-	font-size: 1.1em !important;
-	text-align: center !important;
-}
-.code-lan>span {
-	padding-left: 10px;
-	padding-right: 10px;
-}
-#left-menu {
-	line-height: 2.5em !important;
-	list-style: none;
-	text-align: left;
-	margin-top: 10px;
-}
-#left-menu li {
-	border-bottom: 1px solid #e9e9e9;
-	cursor: pointer;
-}
-a.section-menu-title {
-	color: #666;
-	font-weight: 400;
-	-webkit-transition: 0.25s;
-	-moz-transition: 0.25s;
-	-o-transition: 0.25s;
-	transition: 0.25s;
-	padding-left: 1em
-}
-a.section-menu-title:hover {
-	color: #404040 !important;
-}
-.maintains {
-	padding-left: 2em;
-	line-height: 2em !important;
-}
-.maintain {
-	line-height: 2em !important;
-}
-.people_intro {
-/*border-bottom:1px dashed #CCC;
-	line-height:2em;
-	padding-bottom:0.3em*/
-}
-#contributors {
-	padding-bottom: 1.4em
-}
-#contributors2 {
-	border-bottom: 1px dashed #cfcfcf;
-	padding-bottom: 1.4em
-}
-.core_team {
-	text-align: center !important;
-	font-size: 1.2em !important;
-	padding-bottom: 2em !important;
-	border-bottom: 1px dashed #cfcfcf;
-}
-.participant {
-	margin-top: 0px !important
-}
-.content-p {
-	margin-top: 1em !important;
-}
-.content-header {
-	text-align: left;
-	font-weight: bold !important;
-}
-/*********************************************************************
- 
-
-                                FOOTER
-
-
-**********************************************************************/
-
-
-ul.icons {
-	position: relative;
-	background: rgba(128,128,128,0.05);
-	border-radius: 4em;
-	display: inline-block;
-	padding: 0.35em 0.75em 0.35em 0.75em;
-	font-size: 1.45em;
-	cursor: default;
-}
-ul.icons li {
-	display: inline-block;
-}
-ul.icons li a {
-	display: inline-block;
-	background: none;
-	width: 2.5em;
-	height: 2.5em;
-	line-height: 2.5em;
-	text-align: center;
-	border-radius: 100%;
-	border: 0;
-	color: inherit;
-}
-ul.icons li a:hover {
-	color: #ef8376;
-}
-ol.style1 {
-}
-#footer {
-	background: #232323;
-	padding: 30px 0 0 0;
-	font-size: 12px;
-	color: #999;
-}
-#footer a {
-	color: #ccc;
-}
-#footer a:hover {
-	color: #fff;
-}
-#footer h3.widget-title {
-	font-size: 15px;
-	font-size: 0.9375rem;
-	text-transform: uppercase;
-	color: #ccc;
-	margin: 0 0 20px;
-}
-#underfooter {
-	background: #696969;
-	padding: 15px 0;
-	color: #EEEEEE;
-	font-size: 12px;
-}
-#underfooter a {
-	color: #aaa;
-}
-#underfooter a:hover {
-	color: #fff;
-}
-#underfooter p {
-	margin: 0;
-}
-.navbar-default .navbar-collapse, .navbar-default .navbar-form {
-	border-color: transparent;
-}
-#nav.affix {
-	position: fixed;
-	top: 0;
-	width: 100%
-}
-#nav {
-	border-radius: 0;
-	background-clip: padding-box;
-	font-family: 'Open sans';
-	font-weight: 400;
-	/* text-transform: uppercase;*/
-	max-height: 340px;
-	padding-right: 15px;
-	padding-left: 15px;
-	border-bottom: 1px solid #d5d4d4;
-	background-color: #fff;
-	opacity: .95;
-}
-.navbar-nav>li>a {
-	color: #454545;
-}
-.nav>li>a:hover, .nav>li>a:focus {
-	text-decoration: none;
-	background-color: transparent;
-}
-#drawer-icon {
-	font-size: 20px;
-	padding: 4px 6px;
-	border: 1px solid #2679f4;
-	border-radius: 3px;
-	margin: 10px;
-}
-
-/* Max page width
-/////////////////////////////////////////////////////////////////////*/
-@media (min-width: 1200px) {
-.container {
-	max-width: 1080px;
-}
-}
-
-@media only screen and (max-width: 767px) {
-/*
-#nav-wrapper{
-	position:fixed;
-	top:0px;
-	
-	}*/
-	
-#nav {
-	background-color: transparent !important;
-}
-#head {
-	margin-top: 40px;
-}
-#nav-wrapper {
-	position: fixed;
-	top: 0px;
-}
-.navbar-nav {
-	background-color: #fff;
-	border: 1px solid #d5d4d4;
-}
-.navbar-nav>li {
-	display: list-item;
-	border-bottom: 1px solid #d5d4d4;
-}
-.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
-background-color: transparent !important;
-}
-}
+@font-face {
+	font-family: 'HelveticaNeueLight';
+	src: url('../fonts/helveticaneue_lt.eot');
+	src: url('../fonts/helveticaneue_lt.eot') format('embedded-opentype'),  url('../fonts/helveticaneue_lt.woff') format('woff'),  url('../fonts/helveticaneue_lt.ttf') format('truetype'),  url('../fonts/helveticaneue_lt.svg#HelveticaNeueLight') format('svg');
+}
+@font-face {
+	font-family: 'HelveticaNeueRegular';
+	src: url('../fonts/helveticaneue-webfont.eot');
+	src: url('../fonts/helveticaneue-webfont.eot') format('embedded-opentype'),  url('../fonts/helveticaneue-webfont.woff') format('woff'),  url('../fonts/helveticaneue-webfont.ttf') format('truetype'),  url('../fonts/helveticaneue-webfont.svg#HelveticaNeueRegular') format('svg');
+}
+/*@font-face {
+    font-family: 'open_sanslight';
+    src: url('../fonts/opensans-light-webfont.eot');
+    src: url('../fonts/opensans-light-webfont.eot?#iefix') format('embedded-opentype'),
+         url('../fonts/opensans-light-webfont.woff') format('woff'),
+         url('../fonts/opensans-light-webfont.ttf') format('truetype'),
+         url('../fonts/opensans-light-webfont.svg#open_sanslight') format('svg');
+    font-weight: normal;
+    font-style: normal;
+
+}
+
+@font-face {
+    font-family: 'open_sansregular';
+    src: url('../fonts/opensans-regular-webfont.eot');
+    src: url('../fonts/opensans-regular-webfont.eot?#iefix') format('embedded-opentype'),
+         url('../fonts/opensans-regular-webfont.woff') format('woff'),
+         url('../fonts/opensans-regular-webfont.ttf') format('truetype'),
+         url('../fonts/opensans-regular-webfont.svg#open_sansregular') format('svg');
+    font-weight: normal;
+    font-style: normal;
+
+}
+*/
+
+
+
+html {
+	font-size: 100%;
+}
+body {
+	font-size: 14px;
+	font-size: 0.9375rem;
+	font-family: 'Open sans', 'HelveticaNeueRegular', Arial, sans-serif;
+	color: #666666;
+	font-weight: 400;
+	padding: 0;
+}
+.topspace {
+	margin-top: 40px;
+}
+p {
+	line-height: 1.6em;
+	margin: 0 0 30px 0;
+}
+.title_text {
+	font-size: 1.1em !important;
+}
+.big_text {
+	font-size: 1.7em !important;
+	font-family: 'Open sans';
+	font-weight: 300;
+}
+.normal_text {
+	font-size: 1.3em !important;
+	font-family: 'Open sans';
+	font-weight: 600;
+}
+ul, ol {
+	line-height: 1.6em;
+	margin: 0 0 30px 0;
+}
+h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
+	font-family: 'Open sans', 'HelveticaNeueRegular', Arial, sans-serif;
+	font-weight: 400;
+	color: #333333;
+}
+h1 {
+	font-size: 40px;
+	font-size: 2.5rem;
+}
+h2 {
+	font-size: 36px;
+	font-size: 2.25rem;
+}
+h3 {
+	font-size: 30px;
+	font-size: 1.875rem;
+}
+h4 {
+	font-size: 24px;
+	font-size: 1.5rem;
+}
+h5 {
+	font-size: 20px;
+	font-size: 1.25rem;
+}
+a {
+	color: #2679f4;
+	-webkit-transition: 0.25s;
+	-moz-transition: 0.25s;
+	-o-transition: 0.25s;
+	transition: 0.25s;
+}
+a:hover, a:focus {
+	cursor: pointer;
+	color: #2062c4;
+	text-decoration: none;
+}
+/*********************************************************************
+ 
+
+                                HEADER
+
+
+**********************************************************************/
+#head {
+	background: #f4f4f4 url(../images/data.png) top center;
+	background-size: cover;
+	color: #7C7C7C;
+	height: 330px;	
+}
+#head .title {
+	font-family: 'Open sans';
+	font-weight: 400;
+	font-size: 2.2rem;
+	font-size: 36px;
+	color: #fb8d08;/*	background-image: -webkit-gradient( linear, left bottom, right bottom, color-stop(0, #C6419E), color-stop(1, #6382FF) );
+	background-image: -o-linear-gradient(right, #C6419E 0%, #6382FF 100%);
+	background-image: -moz-linear-gradient(right, #C6419E 0%, #6382FF 100%);
+	background-image: -webkit-linear-gradient(right, #C6419E 0%, #6382FF 100%);
+	background-image: -ms-linear-gradient(right, #C6419E 0%, #6382FF 100%);
+	background-image: linear-gradient(to right, #C6419E 0%, #6382FF 100%);
+	-webkit-background-clip: text;
+	-webkit-text-fill-color: transparent;*/
+  
+}
+#head img.img-circle {
+	display: block;
+	width: 140px;
+	height: 140px;
+	overflow: hidden;
+	border: 9px solid rgba(0, 0, 0, 0.05);
+	margin: 0 auto;
+}
+
+#head .title a {
+	text-decoration: none;
+	color: #333333;
+}
+#head .tagline {
+	display: block;
+	font-size: 14px;
+	font-size: 1.1rem;
+	line-height: 1.2em;
+	color: #7C7C7C;
+	margin: 5px 0 0;
+}
+#head .tagline b {
+	font-weight: normal;
+}
+#head .tagline a {
+	color: #5E5E5E;
+}
+#logo {
+	padding-top: 50px;
+}
+.home #head .title {
+	font-size: 18px;
+	color: #fb8d08;/*color:#146df3;*/
+	
+}
+#download {
+	text-align: center;
+	padding: 20px;
+	font-size: 16px;
+	font-weight: 500;
+	width: 150px;
+	margin: 30px auto;
+	padding: 0.6em 0.8em;
+	color: #333;
+	/*background: rgba(38,121,244,0.8);*/
+	border: 1px solid #333;
+	-webkit-animation-delay: 1s;
+	-ms-animation-delay: 1s;
+	-moz-animation-delay: 1s;
+	-o-animation-delay: 1s;
+	animation-delay: 1s;
+	text-shadow: none;
+	text-transform: uppercase;
+ transparent!important
+}
+#download a {
+	color: #333;
+}
+#download:hover {
+	border: 1px solid #5c5c5c;
+	opacity: 0.8;
+}
+/*********************************************************************
+ 
+
+                            NAVBAR 
+
+
+**********************************************************************/
+.navbar {
+	/*
+	background: #f4f4f4 url(../images/data.png) top center;
+	background-size: cover;
+	color: #7C7C7C;
+	height: 100px;
+*/
+	 border-width: 1px 0;
+	-webkit-border-radius: 0;
+	-webkit-background-clip: padding-box;
+	-moz-border-radius: 0;
+	-moz-background-clip: padding;
+	border-radius: 0;
+	background-clip: padding-box;
+	width: 100%;
+
+}
+.navbar.stick {
+	position: fixed;
+	top: 0;
+	left: 0;
+	opacity: .95;
+}
+.navbar-collapse {
+	-webkit-border-radius: 0;
+	-webkit-background-clip: padding-box;
+	-moz-border-radius: 0;
+	-moz-background-clip: padding;
+	border-radius: 0;
+	background-clip: padding-box;
+	font-family: 'Open sans';
+	font-weight: 400;
+	/* text-transform: uppercase;*/
+}
+.navbar-nav {
+	float: none;
+	margin: 0 auto;
+	text-align: center;
+}
+.navbar-nav > li {
+	float: none;
+	display: inline-block;
+}
+.navbar-nav > li > a {
+	padding: 2px 12px 16px 12px;
+}
+.navbar-default {
+	background-color: #ffffff;
+	border-color: #cccccc;
+}
+.navbar-default .navbar-nav > li > a {
+	color: #454545;
+}
+.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
+	color: #000000;
+	background-color: #ffffff;
+}
+.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
+	color: #000000;
+	background-color: #ffffff;
+}
+.navbar-default .dropdown ul.dropdown-menu > li > a {
+	color: #454545;
+}
+.navbar-default .dropdown ul.dropdown-menu > li > a:hover {
+	background-color: #eeeeee;
+	color: #000000;
+}
+/*.top-logo {
+	background-image: -webkit-gradient(  linear,  left bottom,  right bottom,  color-stop(0, #C6419E),  color-stop(1, #6382FF) );
+	background-image: -o-linear-gradient(right, #C6419E 0%, #6382FF 100%);
+	background-image: -moz-linear-gradient(right, #C6419E 0%, #6382FF 100%);
+	background-image: -webkit-linear-gradient(right, #C6419E 0%, #6382FF 100%);
+	background-image: -ms-linear-gradient(right, #C6419E 0%, #6382FF 100%);
+	background-image: linear-gradient(to right, #C6419E 0%, #6382FF 100%);
+	-webkit-background-clip: text;
+	-webkit-text-fill-color: transparent;
+}*/
+.top-logo-border {
+	background-color: #efefef;
+	width: 3em;
+	height: 3em;
+	border-radius: 1.5em;
+}
+/*********************************************************************************/
+/* Main Sections                                                                 */
+/*********************************************************************************/
+
+.main {
+	position: relative;
+	margin: 0;
+	font-family: 'Open sans';
+	font-weight: 300;
+}
+.indent {
+	margin-left: 40px;
+	line-height: 1.8em
+}
+.main p {
+	margin-top: 1.25em;
+	font-size: 1.04em;
+	font-weight: 100;
+	padding: 0;
+	line-height: 2em;
+}
+.main p a {
+	color: #2679f4;
+	-webkit-transition: 0.25s;
+	transition: 0.25s;
+}
+.main p a:hover, a:focus {
+	cursor: pointer;
+	color: #2062c4;
+	text-decoration: none;
+}
+.main > header {
+	background: #fff;
+	text-align: center;
+	padding: 4em 0 4em 0;
+	margin: 0;
+}
+.main > header h2 {
+	font-size: 2.25em;
+	font-weight: 300;
+	margin-bottom: 0;
+}
+.main > header p {
+	margin: 2em 0 0 0;
+	padding: 0;
+	text-align: left;
+	line-height: 1.5em
+}
+.less-margin {
+	margin-top: 1em !important;
+}
+.main > .content {
+	padding: 6em 0 6em 0;
+}
+.main > .content > .container {
+}
+.main > .content h3 {
+	font-size: 1.5em;
+}
+/*********************************************************************
+ 
+
+                                CONTENT
+
+
+**********************************************************************/
+
+.circle {
+	width: 8em;
+	height: 8em;
+	border-radius: 4em;
+	text-align: center;
+	margin: 0 auto;
+	border: 1px solid #333;
+	padding-top: 2em;
+}
+.circle-icon {
+	font-size: 4.3em;
+	text-align: center;
+	vertical-align: middle;
+	padding-top: 0.5em;
+	color: #666666;
+}
+.version:hover {
+	opacity: .7;
+	-webkit-transition: 0.25s;
+	-moz-transition: 0.25s;
+	-o-transition: 0.25s;
+	transition: 0.25s;
+}
+.biggericon {
+	font-size: 58px;
+}
+#lessmargin {
+	margin-top: 1.4em;
+}
+img {
+	max-width: 100%;
+}
+.section-title, .entry-title {
+	display: block;
+	width: 100%;
+	overflow: hidden;
+	margin: 0px 0 25px;
+	text-align: center;
+	font-weight: 300;
+	text-transform: uppercase;
+	font-size: 36px;
+	font-size: 1.8rem;
+	letter-spacing: 1px;
+}
+.section-title a, .entry-title a {
+	color: #333333;
+}
+.section-title span, .entry-title span {
+	display: inline-block;
+	position: relative;
+}
+.section-title span:before, .entry-title span:before, .section-title span:after, .entry-title span:after {
+	content: "";
+	position: absolute;
+	height: 4px;
+	top: .53em;
+	width: 400%;
+	border-bottom: 1px solid #ccc;
+	border-top: 1px solid #ccc;
+}
+.section-title span:before, .entry-title span:before {
+	right: 100%;
+	margin-right: 45px;
+}
+.section-title span:after, .entry-title span:after {
+	left: 100%;
+	margin-left: 45px;
+}
+.entry-header .entry-meta {
+	text-align: center;
+	font-family: Georgia, serif;
+	font-size: 18px;
+	font-size: 1.125rem;
+	font-style: italic;
+	font-weight: normal;
+	color: #a5a5a5;
+	margin: 0 0 15px 0;
+}
+.entry-header .entry-meta a {
+	color: #a5a5a5;
+}
+.entry-content {
+	margin: 0 0 60px 0;
+}
+.code-lan {
+	font-family: "Open sans", Helvetica, Arial, sans-serif;
+	font-size: 1.1em !important;
+	text-align: center !important;
+}
+.code-lan>span {
+	padding-left: 10px;
+	padding-right: 10px;
+}
+#left-menu {
+	line-height: 2.5em !important;
+	list-style: none;
+	text-align: left;
+	margin-top: 10px;
+}
+#left-menu li {
+	border-bottom: 1px solid #e9e9e9;
+	cursor: pointer;
+}
+a.section-menu-title {
+	color: #666;
+	font-weight: 400;
+	-webkit-transition: 0.25s;
+	-moz-transition: 0.25s;
+	-o-transition: 0.25s;
+	transition: 0.25s;
+	padding-left: 1em
+}
+a.section-menu-title:hover {
+	color: #404040 !important;
+}
+.maintains {
+	padding-left: 2em;
+	line-height: 2em !important;
+}
+.maintain {
+	line-height: 2em !important;
+}
+.people_intro {
+/*border-bottom:1px dashed #CCC;
+	line-height:2em;
+	padding-bottom:0.3em*/
+}
+#contributors {
+	padding-bottom: 1.4em
+}
+#contributors2 {
+	border-bottom: 1px dashed #cfcfcf;
+	padding-bottom: 1.4em
+}
+.core_team {
+	text-align: center !important;
+	font-size: 1.2em !important;
+	padding-bottom: 2em !important;
+	border-bottom: 1px dashed #cfcfcf;
+}
+.participant {
+	margin-top: 0px !important
+}
+.content-p {
+	margin-top: 1em !important;
+}
+.content-header {
+	text-align: left;
+	font-weight: bold !important;
+}
+/*********************************************************************
+ 
+
+                                FOOTER
+
+
+**********************************************************************/
+
+
+ul.icons {
+	position: relative;
+	background: rgba(128,128,128,0.05);
+	border-radius: 4em;
+	display: inline-block;
+	padding: 0.35em 0.75em 0.35em 0.75em;
+	font-size: 1.45em;
+	cursor: default;
+}
+ul.icons li {
+	display: inline-block;
+}
+ul.icons li a {
+	display: inline-block;
+	background: none;
+	width: 2.5em;
+	height: 2.5em;
+	line-height: 2.5em;
+	text-align: center;
+	border-radius: 100%;
+	border: 0;
+	color: inherit;
+}
+ul.icons li a:hover {
+	color: #ef8376;
+}
+ol.style1 {
+}
+#footer {
+	background: #232323;
+	padding: 30px 0 0 0;
+	font-size: 12px;
+	color: #999;
+}
+#footer a {
+	color: #ccc;
+}
+#footer a:hover {
+	color: #fff;
+}
+#footer h3.widget-title {
+	font-size: 15px;
+	font-size: 0.9375rem;
+	text-transform: uppercase;
+	color: #ccc;
+	margin: 0 0 20px;
+}
+#underfooter {
+	background: #696969;
+	padding: 15px 0;
+	color: #EEEEEE;
+	font-size: 12px;
+}
+#underfooter a {
+	color: #aaa;
+}
+#underfooter a:hover {
+	color: #fff;
+}
+#underfooter p {
+	margin: 0;
+}
+.navbar-default .navbar-collapse, .navbar-default .navbar-form {
+	border-color: transparent;
+}
+#nav.affix {
+	position: fixed;
+	top: 0;
+	width: 100%
+}
+#nav {
+	border-radius: 0;
+	background-clip: padding-box;
+	font-family: 'Open sans';
+	font-weight: 400;
+	/* text-transform: uppercase;*/
+	max-height: 340px;
+	padding-right: 15px;
+	padding-left: 15px;
+	border-bottom: 1px solid #d5d4d4;
+	background-color: #fff;
+	opacity: .95;
+}
+.navbar-nav>li>a {
+	color: #454545;
+}
+.nav>li>a:hover, .nav>li>a:focus {
+	text-decoration: none;
+	background-color: transparent;
+}
+#drawer-icon {
+	font-size: 20px;
+	padding: 4px 6px;
+	border: 1px solid #2679f4;
+	border-radius: 3px;
+	margin: 10px;
+}
+
+/* Max page width
+/////////////////////////////////////////////////////////////////////*/
+@media (min-width: 1200px) {
+.container {
+	max-width: 1080px;
+}
+}
+
+@media only screen and (max-width: 767px) {
+/*
+#nav-wrapper{
+	position:fixed;
+	top:0px;
+	
+	}*/
+	
+#nav {
+	background-color: transparent !important;
+}
+#head {
+	margin-top: 40px;
+}
+#nav-wrapper {
+	position: fixed;
+	top: 0px;
+}
+.navbar-nav {
+	background-color: #fff;
+	border: 1px solid #d5d4d4;
+}
+.navbar-nav>li {
+	display: list-item;
+	border-bottom: 1px solid #d5d4d4;
+}
+.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
+background-color: transparent !important;
+}
+}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/26c8d813/docs/website/download/index.md
----------------------------------------------------------------------
diff --git a/docs/website/download/index.md b/docs/website/download/index.md
new file mode 100644
index 0000000..8491eb1
--- /dev/null
+++ b/docs/website/download/index.md
@@ -0,0 +1,45 @@
+---
+layout: default
+title: Community
+---
+
+
+  <main id="main" >
+  <div class="container" >
+    <div id="zero" class=" main" >
+      <header style=" padding:2em 0 4em 0">
+        <div class="container" >
+          <h4 class="section-title"><span>Kylin Download</span></h4>
+          <div class="row" style="margin-top:-20px;">
+            <div class="col-sm-4 col-md-4">
+
+              <p class="big_text">Binary Package</p>
+              <p><a href="http://strataconf.com/big-data-conference-uk-2015/public/schedule/detail/40029" target="_blank">v0.7.1-SNAPSHOT</a> 
+              <br/>date - Feb 12, 2015 <br/></p>
+            </div>
+
+            <div class="col-sm-4 col-md-4">
+              <p class="big_text">Source Code Repo</p>
+              <p>v0.6.6 (Master branch): <a href="https://github.com/apache/incubator-kylin" target="_blank"> https://github.com/apache/incubator-kylin</a></p>              
+              <p>v0.7.1 (Inverted-Index branch): <a href="https://github.com/apache/incubator-kylin/tree/inverted-index" target="_blank">https://github.com/apache/incubator-kylin/tree/inverted-index</a></p>
+            </div>
+
+            <div class="col-sm-4 col-md-4">
+              <p class="big_text">Installation Guide</p>              
+              <p>v0.6.x: <a href="https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation" target="_blank">https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation</a></p>
+              <p>v0.7.x: <a href="https://github.com/KylinOLAP/Kylin/blob/inverted-index/docs/Installation/install_and_run.md" target="_blank">https://github.com/KylinOLAP/Kylin/blob/inverted-index/docs/Installation/install_and_run.md</a></p>
+
+            </div>
+          </div>
+        </div>
+        <!-- /container --> 
+        
+      </header>
+    </div>
+    <!-- / section --> 
+  </div>
+  <!-- /container -->
+  
+  </header>
+  </section>
+</main>


[41/41] incubator-kylin git commit: Merge branch 'inverted-index' of https://git-wip-us.apache.org/repos/asf/incubator-kylin into inverted-index

Posted by li...@apache.org.
Merge branch 'inverted-index' of https://git-wip-us.apache.org/repos/asf/incubator-kylin into inverted-index


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

Branch: refs/heads/inverted-index
Commit: 2b53d660394e8a788a9d6a72933f1d7bb5de0a24
Parents: 598476f 355a09b
Author: liyang@apache.org <ya...@D-SHC-00801746.corp.ebay.com>
Authored: Fri Feb 27 06:24:36 2015 +0000
Committer: liyang@apache.org <ya...@D-SHC-00801746.corp.ebay.com>
Committed: Fri Feb 27 06:24:36 2015 +0000

----------------------------------------------------------------------

----------------------------------------------------------------------



[39/41] incubator-kylin git commit: 1. auto-correct "com.kylinolap" before Class.forName() 2. Rename KYLIN_CONF_HOME to KYLIN_CONF

Posted by li...@apache.org.
1. auto-correct "com.kylinolap" before Class.forName()
2. Rename KYLIN_CONF_HOME to KYLIN_CONF


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

Branch: refs/heads/inverted-index
Commit: b928cc268e3474747baabd2fd37c170520abb144
Parents: a7d0ea3
Author: Li, Yang <ya...@ebay.com>
Authored: Fri Feb 27 13:22:22 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Fri Feb 27 13:22:22 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    | 10 ++--
 .../org/apache/kylin/common/util/ClassUtil.java | 53 ++++++++++++++++++++
 .../apache/kylin/common/util/ClasspathUtil.java | 45 -----------------
 .../common/persistence/ResourceToolTest.java    |  4 +-
 .../common/util/AbstractKylinTestCase.java      |  6 +--
 .../kylin/common/util/BasicHadoopTest.java      |  2 +-
 .../common/util/HBaseMetadataTestCase.java      |  2 +-
 .../common/util/LocalFileMetadataTestCase.java  |  4 +-
 .../kylin/dict/DictionaryInfoSerializer.java    |  3 +-
 .../org/apache/kylin/dict/TrieDictionary.java   |  3 +-
 .../main/java/org/apache/kylin/dict/Util.java   | 44 ----------------
 .../apache/kylin/job/CubeMetadataUpgrade.java   |  2 +-
 .../kylin/job/common/HadoopShellExecutable.java |  5 +-
 .../kylin/job/common/MapReduceExecutable.java   | 35 +++++++------
 .../kylin/job/engine/JobEngineConfig.java       |  2 +-
 .../kylin/job/hadoop/AbstractHadoopJob.java     |  2 +-
 .../kylin/job/manager/ExecutableManager.java    | 28 ++++++-----
 .../kylin/job/BuildCubeWithEngineTest.java      |  6 +--
 .../apache/kylin/job/BuildIIWithEngineTest.java |  4 +-
 .../org/apache/kylin/job/ExportHBaseData.java   |  2 +-
 .../org/apache/kylin/job/ImportHBaseData.java   |  2 +-
 .../apache/kylin/job/SampleCubeSetupTest.java   |  4 +-
 .../kylin/job/tools/CubeMigrationTests.java     |  4 +-
 .../java/org/apache/kylin/rest/DebugTomcat.java |  2 +-
 24 files changed, 125 insertions(+), 149 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
index 5656fd3..113afd4 100644
--- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -127,7 +127,7 @@ public class KylinConfig {
     public static final String MAIL_SENDER = "mail.sender";
 
     public static final String KYLIN_HOME = "KYLIN_HOME";
-    public static final String KYLIN_CONF_HOME = "KYLIN_CONF_HOME";
+    public static final String KYLIN_CONF = "KYLIN_CONF";
 
     private static final Logger logger = LoggerFactory.getLogger(KylinConfig.class);
 
@@ -532,17 +532,17 @@ public class KylinConfig {
     }
 
     private static File getKylinProperties() {
-        String kylinConfHome = System.getProperty(KYLIN_CONF_HOME);
+        String kylinConfHome = System.getProperty(KYLIN_CONF);
         if (!StringUtils.isEmpty(kylinConfHome)) {
-            logger.info("Use KYLIN_CONF_HOME=" + kylinConfHome);
+            logger.info("Use KYLIN_CONF=" + kylinConfHome);
             return getKylinPropertiesFile(kylinConfHome);
         }
 
-        logger.warn("KYLIN_CONF_HOME property was not set, will seek KYLIN_HOME env variable");
+        logger.warn("KYLIN_CONF property was not set, will seek KYLIN_HOME env variable");
 
         String kylinHome = getKylinHome();
         if (StringUtils.isEmpty(kylinHome))
-            throw new RuntimeException("Didn't find KYLIN_CONF_HOME or KYLIN_HOME, please set one of them");
+            throw new RuntimeException("Didn't find KYLIN_CONF or KYLIN_HOME, please set one of them");
 
         String path = kylinHome + File.separator + "conf";
         return getKylinPropertiesFile(path);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/common/src/main/java/org/apache/kylin/common/util/ClassUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/ClassUtil.java b/common/src/main/java/org/apache/kylin/common/util/ClassUtil.java
new file mode 100644
index 0000000..b474c58
--- /dev/null
+++ b/common/src/main/java/org/apache/kylin/common/util/ClassUtil.java
@@ -0,0 +1,53 @@
+/*
+ * 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.
+*/
+
+package org.apache.kylin.common.util;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+/**
+ * @author xduo
+ * 
+ */
+public class ClassUtil {
+
+    public static void addClasspath(String path) throws Exception {
+        System.out.println("Adding path " + path + " to class path");
+        File file = new File(path);
+
+        if (file.exists()) {
+            URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
+            Class<URLClassLoader> urlClass = URLClassLoader.class;
+            Method method = urlClass.getDeclaredMethod("addURL", new Class[] { URL.class });
+            method.setAccessible(true);
+            method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
+        }
+    }
+    
+    @SuppressWarnings("unchecked")
+    public static <T> Class<? extends T> forName(String name, Class<T> clz) throws ClassNotFoundException {
+        if (name.startsWith("com.kylinolap")) {
+            name = "org.apache.kylin" + name.substring("com.kylinolap".length());
+        }
+        return (Class<? extends T>) Class.forName(name);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/common/src/main/java/org/apache/kylin/common/util/ClasspathUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/ClasspathUtil.java b/common/src/main/java/org/apache/kylin/common/util/ClasspathUtil.java
deleted file mode 100644
index fc982f1..0000000
--- a/common/src/main/java/org/apache/kylin/common/util/ClasspathUtil.java
+++ /dev/null
@@ -1,45 +0,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.
-*/
-
-package org.apache.kylin.common.util;
-
-import java.io.File;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLClassLoader;
-
-/**
- * @author xduo
- * 
- */
-public class ClasspathUtil {
-
-    public static void addClasspath(String path) throws Exception {
-        System.out.println("Adding path " + path + " to class path");
-        File file = new File(path);
-
-        if (file.exists()) {
-            URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
-            Class<URLClassLoader> urlClass = URLClassLoader.class;
-            Method method = urlClass.getDeclaredMethod("addURL", new Class[] { URL.class });
-            method.setAccessible(true);
-            method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java b/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
index bac8e00..8a72cdf 100644
--- a/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
+++ b/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
@@ -26,7 +26,7 @@ import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.ClasspathUtil;
+import org.apache.kylin.common.util.ClassUtil;
 
 /**
  * Created by honma on 9/18/14.
@@ -35,7 +35,7 @@ import org.apache.kylin.common.util.ClasspathUtil;
 public class ResourceToolTest {
     @Before
     public void setup() throws Exception {
-        ClasspathUtil.addClasspath(new File("../examples/test_case_data/hadoop-site").getAbsolutePath());
+        ClassUtil.addClasspath(new File("../examples/test_case_data/hadoop-site").getAbsolutePath());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java b/common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java
index 7734e48..36a9287 100644
--- a/common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java
+++ b/common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java
@@ -50,14 +50,14 @@ public abstract class AbstractKylinTestCase {
 
         KylinConfig.destoryInstance();
 
-        if (System.getProperty(KylinConfig.KYLIN_CONF_HOME) == null && System.getenv(KylinConfig.KYLIN_CONF_HOME) == null)
-            System.setProperty(KylinConfig.KYLIN_CONF_HOME, kylinConfigFolder);
+        if (System.getProperty(KylinConfig.KYLIN_CONF) == null && System.getenv(KylinConfig.KYLIN_CONF) == null)
+            System.setProperty(KylinConfig.KYLIN_CONF, kylinConfigFolder);
 
     }
 
     public static void staticCleanupTestMetadata() {
         cleanupCache();
-        System.clearProperty(KylinConfig.KYLIN_CONF_HOME);
+        System.clearProperty(KylinConfig.KYLIN_CONF);
         KylinConfig.destoryInstance();
 
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java b/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
index 7d5f6f4..8278939 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
@@ -41,7 +41,7 @@ public class BasicHadoopTest {
 
     @BeforeClass
     public static void setup() throws Exception {
-        ClasspathUtil.addClasspath(new File("../examples/test_case_data/hadoop-site").getAbsolutePath());
+        ClassUtil.addClasspath(new File("../examples/test_case_data/hadoop-site").getAbsolutePath());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java b/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
index 17f660d..90970e5 100644
--- a/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
+++ b/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
@@ -28,7 +28,7 @@ public class HBaseMetadataTestCase extends AbstractKylinTestCase {
     static {
         if (useSandbox()) {
             try {
-                ClasspathUtil.addClasspath(new File("../examples/test_case_data/sandbox/").getAbsolutePath());
+                ClassUtil.addClasspath(new File("../examples/test_case_data/sandbox/").getAbsolutePath());
             } catch (Exception e) {
                 e.printStackTrace();
             }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java b/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
index 56afe51..60db6eb 100644
--- a/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
+++ b/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
@@ -47,8 +47,8 @@ public class LocalFileMetadataTestCase extends AbstractKylinTestCase {
             e.printStackTrace();
         }
 
-        if (System.getProperty(KylinConfig.KYLIN_CONF_HOME) == null && System.getenv(KylinConfig.KYLIN_CONF_HOME) == null)
-            System.setProperty(KylinConfig.KYLIN_CONF_HOME, tempTestMetadataUrl);
+        if (System.getProperty(KylinConfig.KYLIN_CONF) == null && System.getenv(KylinConfig.KYLIN_CONF) == null)
+            System.setProperty(KylinConfig.KYLIN_CONF, tempTestMetadataUrl);
 
         KylinConfig.getInstanceFromEnv().setMetadataUrl(tempTestMetadataUrl);
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/dictionary/src/main/java/org/apache/kylin/dict/DictionaryInfoSerializer.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/DictionaryInfoSerializer.java b/dictionary/src/main/java/org/apache/kylin/dict/DictionaryInfoSerializer.java
index 14cb845..5b7a318 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/DictionaryInfoSerializer.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/DictionaryInfoSerializer.java
@@ -23,6 +23,7 @@ import java.io.DataOutputStream;
 import java.io.IOException;
 
 import org.apache.kylin.common.persistence.Serializer;
+import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.JsonUtil;
 
 /**
@@ -61,7 +62,7 @@ public class DictionaryInfoSerializer implements Serializer<DictionaryInfo> {
         if (infoOnly == false) {
             Dictionary<?> dict;
             try {
-                dict = (Dictionary<?>) Util.classForName(obj.getDictionaryClass()).newInstance();
+                dict = (Dictionary<?>) ClassUtil.forName(obj.getDictionaryClass(), Dictionary.class).newInstance();
             } catch (InstantiationException e) {
                 throw new RuntimeException(e);
             } catch (IllegalAccessException e) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/dictionary/src/main/java/org/apache/kylin/dict/TrieDictionary.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/TrieDictionary.java b/dictionary/src/main/java/org/apache/kylin/dict/TrieDictionary.java
index aafbcc4..ef845ce 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/TrieDictionary.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/TrieDictionary.java
@@ -29,6 +29,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 
 import org.apache.kylin.common.util.BytesUtil;
+import org.apache.kylin.common.util.ClassUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -101,7 +102,7 @@ public class TrieDictionary<T> extends Dictionary<T> {
 
             String converterName = headIn.readUTF();
             if (converterName.isEmpty() == false)
-                this.bytesConvert = (BytesConverter<T>) Util.classForName(converterName).newInstance();
+                this.bytesConvert = (BytesConverter<T>) ClassUtil.forName(converterName, BytesConverter.class).newInstance();
 
             this.nValues = BytesUtil.readUnsigned(trieBytes, headSize + sizeChildOffset, sizeNoValuesBeneath);
             this.sizeOfId = BytesUtil.sizeForValue(baseId + nValues + 1); // note baseId could raise 1 byte in ID space, +1 to reserve all 0xFF for NULL case

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/dictionary/src/main/java/org/apache/kylin/dict/Util.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/Util.java b/dictionary/src/main/java/org/apache/kylin/dict/Util.java
deleted file mode 100644
index f10041f..0000000
--- a/dictionary/src/main/java/org/apache/kylin/dict/Util.java
+++ /dev/null
@@ -1,44 +0,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.
-*/
-
-package org.apache.kylin.dict;
-
-class Util {
-    
-    /*
-     * There are class names serialized into dict files. After apache package renaming, the old class names
-     * requires adjustment in order to find the right class under new package.
-     */
-    static Class<?> classForName(String className) throws ClassNotFoundException {
-        try {
-            return Class.forName(className);
-        } catch (ClassNotFoundException e) {
-            
-            // if package names were changed?
-            int cut = className.lastIndexOf('.');
-            String pkg = className.substring(0, cut);
-            String newPkg = Util.class.getPackage().getName();
-            if (pkg.equals(newPkg))
-                throw e;
-            
-            // find again under new package
-            String newClassName = newPkg + className.substring(cut);
-            return Class.forName(newClassName);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java b/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
index fadaa8c..ae03e26 100644
--- a/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
+++ b/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
@@ -89,7 +89,7 @@ public class CubeMetadataUpgrade {
 
     public CubeMetadataUpgrade(String newMetadataUrl) {
         KylinConfig.destoryInstance();
-        System.setProperty(KylinConfig.KYLIN_CONF_HOME, newMetadataUrl);
+        System.setProperty(KylinConfig.KYLIN_CONF, newMetadataUrl);
         KylinConfig.getInstanceFromEnv().setMetadataUrl(newMetadataUrl);
 
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java b/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
index bc1c419..371e078 100644
--- a/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
@@ -25,6 +25,8 @@ import java.lang.reflect.Constructor;
 import org.apache.hadoop.util.ToolRunner;
 
 import com.google.common.base.Preconditions;
+
+import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.job.exception.ExecuteException;
 import org.apache.kylin.job.execution.ExecutableContext;
 import org.apache.kylin.job.execution.ExecuteResult;
@@ -43,7 +45,6 @@ public class HadoopShellExecutable extends AbstractExecutable {
         super();
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     protected ExecuteResult doWork(ExecutableContext context) throws ExecuteException {
         final String mapReduceJobClass = getJobClass();
@@ -51,7 +52,7 @@ public class HadoopShellExecutable extends AbstractExecutable {
         Preconditions.checkNotNull(mapReduceJobClass);
         Preconditions.checkNotNull(params);
         try {
-            final Constructor<? extends AbstractHadoopJob> constructor = (Constructor<? extends AbstractHadoopJob>) Class.forName(mapReduceJobClass).getConstructor();
+            final Constructor<? extends AbstractHadoopJob> constructor = ClassUtil.forName(mapReduceJobClass, AbstractHadoopJob.class).getConstructor();
             final AbstractHadoopJob job = constructor.newInstance();
             String[] args = params.trim().split("\\s+");
             logger.info("parameters of the HadoopShellExecutable:");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java b/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
index 1ea1620..0b8d5b6 100644
--- a/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
@@ -18,27 +18,33 @@
 
 package org.apache.kylin.job.common;
 
-import com.google.common.base.Preconditions;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.reflect.Constructor;
+import java.util.Map;
+
 import org.apache.commons.lang.StringUtils;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.constant.ExecutableConstants;
-import org.apache.kylin.job.constant.JobStepStatusEnum;
-import org.apache.kylin.job.exception.ExecuteException;
-import org.apache.kylin.job.execution.*;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.job.tools.HadoopStatusChecker;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.mapreduce.Cluster;
 import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.JobID;
 import org.apache.hadoop.mapreduce.JobStatus;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.ClassUtil;
+import org.apache.kylin.job.constant.ExecutableConstants;
+import org.apache.kylin.job.constant.JobStepStatusEnum;
+import org.apache.kylin.job.exception.ExecuteException;
+import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.execution.ExecutableContext;
+import org.apache.kylin.job.execution.ExecutableState;
+import org.apache.kylin.job.execution.ExecuteResult;
+import org.apache.kylin.job.execution.Output;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.tools.HadoopStatusChecker;
 
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.reflect.Constructor;
-import java.util.Map;
+import com.google.common.base.Preconditions;
 
 /**
  * Created by qianzhou on 12/25/14.
@@ -82,7 +88,6 @@ public class MapReduceExecutable extends AbstractExecutable {
         }
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     protected ExecuteResult doWork(ExecutableContext context) throws ExecuteException {
         final String mapReduceJobClass = getMapReduceJobClass();
@@ -96,7 +101,7 @@ public class MapReduceExecutable extends AbstractExecutable {
                 job = new Cluster(new Configuration()).getJob(JobID.forName(extra.get(ExecutableConstants.MR_JOB_ID)));
                 logger.info("mr_job_id:" + extra.get(ExecutableConstants.MR_JOB_ID + " resumed"));
             } else {
-                final Constructor<? extends AbstractHadoopJob> constructor = (Constructor<? extends AbstractHadoopJob>) Class.forName(mapReduceJobClass).getConstructor();
+                final Constructor<? extends AbstractHadoopJob> constructor = ClassUtil.forName(mapReduceJobClass, AbstractHadoopJob.class).getConstructor();
                 final AbstractHadoopJob hadoopJob = constructor.newInstance();
                 hadoopJob.setAsync(true); // so the ToolRunner.run() returns right away
                 logger.info("parameters of the MapReduceExecutable:");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
index 08a5a2e..8cc44bf 100644
--- a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
+++ b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
@@ -35,7 +35,7 @@ public class JobEngineConfig {
     public static String HADOOP_JOB_CONF_FILENAME = "kylin_job_conf";
 
     private static File getJobConfig(String fileName) {
-        String path = System.getProperty(KylinConfig.KYLIN_CONF_HOME);
+        String path = System.getProperty(KylinConfig.KYLIN_CONF);
         if (StringUtils.isNotEmpty(path)) {
             return new File(path, fileName);
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
index 1997327..a8dc687 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
@@ -303,7 +303,7 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
 
     public static KylinConfig loadKylinPropsAndMetadata(Configuration conf) throws IOException {
         File metaDir = new File("meta");
-        System.setProperty(KylinConfig.KYLIN_CONF_HOME, metaDir.getAbsolutePath());
+        System.setProperty(KylinConfig.KYLIN_CONF, metaDir.getAbsolutePath());
         logger.info("The absolute path for meta dir is " + metaDir.getAbsolutePath());
         KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
         kylinConfig.setMetadataUrl(metaDir.getCanonicalPath());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java b/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
index 46c145f..f51ff69 100644
--- a/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
+++ b/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
@@ -18,29 +18,32 @@
 
 package org.apache.kylin.job.manager;
 
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.lang.reflect.Constructor;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.annotation.Nullable;
+
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.job.dao.ExecutableDao;
 import org.apache.kylin.job.dao.ExecutableOutputPO;
 import org.apache.kylin.job.dao.ExecutablePO;
 import org.apache.kylin.job.exception.IllegalStateTranferException;
 import org.apache.kylin.job.exception.PersistentException;
+import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.execution.DefaultChainedExecutable;
 import org.apache.kylin.job.execution.DefaultOutput;
 import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.execution.Output;
-import org.apache.kylin.job.execution.AbstractExecutable;
-import org.apache.kylin.job.execution.DefaultChainedExecutable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.annotation.Nullable;
-import java.lang.reflect.Constructor;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 
 /**
  * Created by qianzhou on 12/16/14.
@@ -49,6 +52,7 @@ public class ExecutableManager {
 
     private static final Logger logger = LoggerFactory.getLogger(ExecutableManager.class);
     private static final ConcurrentHashMap<KylinConfig, ExecutableManager> CACHE = new ConcurrentHashMap<KylinConfig, ExecutableManager>();
+    @SuppressWarnings("unused")
     private final KylinConfig config;
 
     private ExecutableDao executableDao;
@@ -280,7 +284,7 @@ public class ExecutableManager {
         }
         String type = executablePO.getType();
         try {
-            Class<? extends AbstractExecutable> clazz = (Class<? extends AbstractExecutable>) Class.forName(type);
+            Class<? extends AbstractExecutable> clazz = ClassUtil.forName(type, AbstractExecutable.class);
             Constructor<? extends AbstractExecutable> constructor = clazz.getConstructor();
             AbstractExecutable result = constructor.newInstance();
             result.setId(executablePO.getUuid());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java b/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
index de15b94..5e5b191 100644
--- a/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
+++ b/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
@@ -23,7 +23,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractKylinTestCase;
-import org.apache.kylin.common.util.ClasspathUtil;
+import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
@@ -79,8 +79,8 @@ public class BuildCubeWithEngineTest {
     @BeforeClass
     public static void beforeClass() throws Exception {
         logger.info("Adding to classpath: " + new File(HBaseMetadataTestCase.SANDBOX_TEST_DATA).getAbsolutePath());
-        ClasspathUtil.addClasspath(new File(HBaseMetadataTestCase.SANDBOX_TEST_DATA).getAbsolutePath());
-        System.setProperty(KylinConfig.KYLIN_CONF_HOME, "../examples/test_case_data/sandbox");
+        ClassUtil.addClasspath(new File(HBaseMetadataTestCase.SANDBOX_TEST_DATA).getAbsolutePath());
+        System.setProperty(KylinConfig.KYLIN_CONF, "../examples/test_case_data/sandbox");
         System.setProperty("hdp.version", "2.2.0.0-2041"); // mapred-site.xml ref this
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java b/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
index 522f280..01e1d62 100644
--- a/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
+++ b/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
@@ -45,7 +45,7 @@ import com.google.common.collect.Lists;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractKylinTestCase;
-import org.apache.kylin.common.util.ClasspathUtil;
+import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
@@ -93,7 +93,7 @@ public class BuildIIWithEngineTest {
     @BeforeClass
     public static void beforeClass() throws Exception {
         logger.info("Adding to classpath: " + new File(HBaseMetadataTestCase.SANDBOX_TEST_DATA).getAbsolutePath());
-        ClasspathUtil.addClasspath(new File(HBaseMetadataTestCase.SANDBOX_TEST_DATA).getAbsolutePath());
+        ClassUtil.addClasspath(new File(HBaseMetadataTestCase.SANDBOX_TEST_DATA).getAbsolutePath());
         System.setProperty("hdp.version", "2.2.0.0-2041"); // mapred-site.xml ref this
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java b/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
index 802e934..919adeb 100644
--- a/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
+++ b/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
@@ -59,7 +59,7 @@ public class ExportHBaseData {
         backupArchive = "/tmp/kylin_" + currentTIME + ".tar.gz";
 
         KylinConfig.destoryInstance();
-        System.setProperty(KylinConfig.KYLIN_CONF_HOME, AbstractKylinTestCase.SANDBOX_TEST_DATA);
+        System.setProperty(KylinConfig.KYLIN_CONF, AbstractKylinTestCase.SANDBOX_TEST_DATA);
 
         kylinConfig = KylinConfig.getInstanceFromEnv();
         cli = kylinConfig.getCliCommandExecutor();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java b/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
index 22ad069..0f77a20 100644
--- a/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
+++ b/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
@@ -51,7 +51,7 @@ public class ImportHBaseData {
     public void setup() throws IOException {
 
         KylinConfig.destoryInstance();
-        System.setProperty(KylinConfig.KYLIN_CONF_HOME, AbstractKylinTestCase.SANDBOX_TEST_DATA);
+        System.setProperty(KylinConfig.KYLIN_CONF, AbstractKylinTestCase.SANDBOX_TEST_DATA);
 
         kylinConfig = KylinConfig.getInstanceFromEnv();
         cli = kylinConfig.getCliCommandExecutor();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java b/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
index dabeef0..c643863 100644
--- a/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
+++ b/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
@@ -27,7 +27,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.ClasspathUtil;
+import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
@@ -50,7 +50,7 @@ public class SampleCubeSetupTest extends HBaseMetadataTestCase {
             for (String path : paths) {
                 if (!StringUtils.isEmpty(path)) {
                     try {
-                        ClasspathUtil.addClasspath(new File(path).getAbsolutePath());
+                        ClassUtil.addClasspath(new File(path).getAbsolutePath());
                     } catch (Exception e) {
                         System.out.println(e.getLocalizedMessage());
                         System.out.println(e.getStackTrace());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java b/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
index f02cdf8..0f204e6 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
@@ -28,7 +28,7 @@ import org.junit.Ignore;
 import org.junit.Test;
 
 import org.apache.kylin.common.util.AbstractKylinTestCase;
-import org.apache.kylin.common.util.ClasspathUtil;
+import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 
 /**
@@ -39,7 +39,7 @@ public class CubeMigrationTests extends LocalFileMetadataTestCase {
     @Before
     public void setup() throws Exception {
         super.createTestMetadata();
-        ClasspathUtil.addClasspath(new File(AbstractKylinTestCase.SANDBOX_TEST_DATA).getAbsolutePath());
+        ClassUtil.addClasspath(new File(AbstractKylinTestCase.SANDBOX_TEST_DATA).getAbsolutePath());
     }
 
     @After

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b928cc26/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
index 8588831..e3d0b09 100644
--- a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
+++ b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
@@ -42,7 +42,7 @@ public class DebugTomcat {
         
         // test_case_data/sandbox/ contains HDP 2.2 site xmls which is dev sandbox
         ClasspathUtil.addClasspath(new File("../examples/test_case_data/sandbox").getAbsolutePath());
-        System.setProperty(KylinConfig.KYLIN_CONF_HOME, "../examples/test_case_data/sandbox");
+        System.setProperty(KylinConfig.KYLIN_CONF, "../examples/test_case_data/sandbox");
         System.setProperty("hdp.version", "2.2.0.0-2041"); // mapred-site.xml ref this
 
         // workaround for job submission from win to linux -- https://issues.apache.org/jira/browse/MAPREDUCE-4052


[12/41] incubator-kylin git commit: fix compile warning

Posted by li...@apache.org.
fix compile warning


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

Branch: refs/heads/inverted-index
Commit: 16b184dd27ca5debdabd6f47ff246862ea1da9a7
Parents: 9d91f1e
Author: qianhao.zhou <qi...@ebay.com>
Authored: Thu Feb 12 16:56:16 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Thu Feb 12 16:56:16 2015 +0800

----------------------------------------------------------------------
 .../main/java/org/apache/kylin/common/util/SplittedBytes.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/16b184dd/common/src/main/java/org/apache/kylin/common/util/SplittedBytes.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/SplittedBytes.java b/common/src/main/java/org/apache/kylin/common/util/SplittedBytes.java
index 962b467..8751b78 100644
--- a/common/src/main/java/org/apache/kylin/common/util/SplittedBytes.java
+++ b/common/src/main/java/org/apache/kylin/common/util/SplittedBytes.java
@@ -24,8 +24,8 @@ package org.apache.kylin.common.util;
  */
 public class SplittedBytes {
     public SplittedBytes(int length) {
-        value = new byte[length];
-        length = 0;
+        this.value = new byte[length];
+        this.length = 0;
     }
 
     public byte[] value;


[34/41] incubator-kylin git commit: Merge pull request #427 from janzhongi/inverted-index

Posted by li...@apache.org.
Merge pull request #427 from janzhongi/inverted-index

fix ii cube save bug

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

Branch: refs/heads/inverted-index
Commit: 299df1f421ac021f29d3935b1118693b98ebf68c
Parents: 11ee3b3 6255da9
Author: Zhong,Jian <ji...@ebay.com>
Authored: Thu Feb 26 23:36:50 2015 +0800
Committer: Zhong,Jian <ji...@ebay.com>
Committed: Thu Feb 26 23:36:50 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/cubeEdit.js             | 17 ++++++-----------
 webapp/app/js/controllers/cubeSchema.js           |  2 +-
 webapp/app/partials/cubeDesigner/incremental.html |  2 +-
 webapp/app/partials/cubeDesigner/measures.html    |  2 +-
 4 files changed, 9 insertions(+), 14 deletions(-)
----------------------------------------------------------------------



[40/41] incubator-kylin git commit: Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index

Posted by li...@apache.org.
Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index


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

Branch: refs/heads/inverted-index
Commit: 598476f422151fd3be34e69a91611c106d86f6cd
Parents: b928cc2 7d9851e
Author: Li, Yang <ya...@ebay.com>
Authored: Fri Feb 27 13:22:43 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Fri Feb 27 13:22:43 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/model/cubeListModel.js | 0
 webapp/app/js/model/jobListModel.js  | 2 +-
 webapp/grunt.json                    | 4 ++--
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[09/41] incubator-kylin git commit: minor changes

Posted by li...@apache.org.
minor changes


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

Branch: refs/heads/inverted-index
Commit: 9fa0252bb792b4958e6979a5c3d21c8ac08bc71c
Parents: 1f2e74e
Author: lukehan <lu...@apache.org>
Authored: Thu Feb 12 15:46:21 2015 +0800
Committer: lukehan <lu...@apache.org>
Committed: Thu Feb 12 15:46:21 2015 +0800

----------------------------------------------------------------------
 jdbc/pom.xml | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/9fa0252b/jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index 59d1e68..f0829da 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -22,10 +22,7 @@
 	<artifactId>kylin-jdbc</artifactId>
 	<packaging>jar</packaging>
 	<name>Kylin:JDBC</name>
-
-	<!-- More project information. -->
-	<name>Kylin:Jdbc</name>
-	<description>kylin jdbc on optiq avatica</description>
+	<description>Kylin JDBC Driver on optiq avatica</description>
 
 	<parent>
 		<groupId>org.apache.kylin</groupId>


[08/41] incubator-kylin git commit: Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index

Posted by li...@apache.org.
Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index


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

Branch: refs/heads/inverted-index
Commit: 1f2e74e09bb422dd468c379e63e1fbb9284a9ca1
Parents: ac8ec34 5a6563f
Author: lukehan <lu...@apache.org>
Authored: Thu Feb 12 15:42:48 2015 +0800
Committer: lukehan <lu...@apache.org>
Committed: Thu Feb 12 15:42:48 2015 +0800

----------------------------------------------------------------------
 .../64ac4f82-f2af-476e-85b9-f0805001014e.dict   | Bin 0 -> 554 bytes
 .../f5e85644-db92-42b5-9ad5-240ab227d7b0.dict   | Bin 0 -> 554 bytes
 .../16d8185c-ee6b-4f8c-a919-756d9809f937.dict   | Bin 2630 -> 2515 bytes
 .../c12ae49d-9dbe-4a58-b169-19afac317696.dict   | Bin 2630 -> 2515 bytes
 .../eaed91b0-4182-4ee5-a733-1047a622ee29.dict   | Bin 2630 -> 2515 bytes
 .../ec83ebce-7534-4e62-ac6d-7445ee141ab4.dict   | Bin 2630 -> 2515 bytes
 .../7228fad8-a764-4bd4-8934-50e0d7cbcb19.dict   | Bin 3105 -> 2940 bytes
 .../8f92faa4-7d2d-455c-8623-6e1d1b272afe.dict   | Bin 3105 -> 2940 bytes
 .../ad09f2d5-054a-4e1b-a776-7cc07399a6c1.dict   | Bin 3105 -> 2940 bytes
 .../eacccee7-d120-4f4d-97d0-c99a5b83ec32.dict   | Bin 3105 -> 2940 bytes
 .../2602386c-debb-4968-8d2f-b52b8215e385.dict   | Bin 2000 -> 1841 bytes
 .../4243889f-bc81-4807-a975-7041bbbf35e7.dict   | Bin 2000 -> 1841 bytes
 .../494683c1-52d1-4d9a-a3f7-8c53b30fd898.dict   | Bin 2000 -> 1841 bytes
 .../8b4b1c06-fb74-486b-a2ad-74420afebcda.dict   | Bin 2000 -> 1841 bytes
 .../ac520edd-f9d2-419f-a7de-587bfb97dc81.dict   | Bin 2000 -> 1841 bytes
 .../0410d2c4-4686-40bc-ba14-170042a2de94.dict   | Bin 1537 -> 1498 bytes
 .../51ff5e6c-22b3-444e-9915-d376a10f20cb.dict   | Bin 1537 -> 1498 bytes
 .../a4e57e55-48fc-4f25-a9c8-485deed25925.dict   | Bin 1537 -> 1498 bytes
 .../aceae914-4246-4251-a0c2-692fe7a300df.dict   | Bin 1537 -> 1498 bytes
 .../b298089f-9656-4693-b9b2-8fea46f06dd5.dict   | Bin 1537 -> 1498 bytes
 .../c2af25cf-6c79-45e6-a6f6-6d2a8ecc6592.dict   | Bin 1537 -> 1498 bytes
 .../0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict   | Bin 640 -> 661 bytes
 .../14fe66b3-5956-498c-bd93-40182cac5510.dict   | Bin 640 -> 661 bytes
 .../1d383a36-81b9-4177-a822-04eab3683e5b.dict   | Bin 640 -> 661 bytes
 .../c6bf9b51-6e90-4337-8082-4e2fdf78307f.dict   | Bin 640 -> 661 bytes
 .../0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict   | Bin 2264 -> 2189 bytes
 .../31edf35b-ffca-4f24-8229-f87dc34e3087.dict   | Bin 2264 -> 2189 bytes
 .../652bd393-678a-4f16-a504-fd8ce1229355.dict   | Bin 2264 -> 2189 bytes
 .../792eb972-d046-48e6-9428-f6a3aed92fad.dict   | Bin 2264 -> 2189 bytes
 .../914536f8-1e14-43e9-b8ef-525bb5bdb3b2.dict   | Bin 2264 -> 2189 bytes
 .../d25e554e-deac-4e4a-9289-96f0d121d8fc.dict   | Bin 2264 -> 2189 bytes
 jdbc/pom.xml                                    |   4 +++
 .../apache/kylin/job/CubeMetadataUpgrade.java   |  25 +++++++------------
 33 files changed, 13 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/1f2e74e0/jdbc/pom.xml
----------------------------------------------------------------------
diff --cc jdbc/pom.xml
index 2c8a290,7c73dd0..59d1e68
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@@ -21,8 -21,11 +21,12 @@@
  	<modelVersion>4.0.0</modelVersion>
  	<artifactId>kylin-jdbc</artifactId>
  	<packaging>jar</packaging>
 +	<name>Kylin:JDBC</name>
  
+ 	<!-- More project information. -->
+ 	<name>Kylin:Jdbc</name>
+ 	<description>kylin jdbc on optiq avatica</description>
+ 
  	<parent>
  		<groupId>org.apache.kylin</groupId>
  		<artifactId>kylin</artifactId>


[31/41] incubator-kylin git commit: Update unit test

Posted by li...@apache.org.
Update unit test

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

Branch: refs/heads/inverted-index
Commit: 27eb3fcde82f8321cdd49a67ce921bcf734c4be3
Parents: 270b56a
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Sun Feb 15 20:45:20 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Sun Feb 15 20:45:20 2015 +0800

----------------------------------------------------------------------
 pom.xml                                                       | 2 +-
 .../src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java   | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/27eb3fcd/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index af38a71..841d75b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -588,7 +588,7 @@
                                     <value>false</value>
                                 </property>
                             </systemProperties>
-                            <argLine>-Xms1G -Xmx6G -XX:PermSize=1G -XX:MaxPermSize=2G</argLine>
+                            <argLine>-Xms1G -Xmx2G -XX:PermSize=128M -XX:MaxPermSize=256M</argLine>
                         </configuration>
                     </plugin>
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/27eb3fcd/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java b/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
index 9aa8315..00d5ea2 100644
--- a/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
+++ b/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
@@ -1,11 +1,13 @@
 package org.apache.kylin.jdbc;
 
 import com.google.common.collect.Lists;
+import org.apache.commons.io.FileUtils;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.webapp.WebAppContext;
 import org.junit.*;
 
+import java.io.File;
 import java.sql.*;
 import java.util.List;
 import java.util.Properties;
@@ -43,6 +45,11 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
     protected static void stopJetty() throws Exception {
         if (server != null)
             server.stop();
+
+        File workFolder = new File("work");
+        if(workFolder.isDirectory() && workFolder.exists()) {
+            FileUtils.deleteDirectory(workFolder);
+        }
     }
 
     protected static void startJetty() throws Exception {


[23/41] incubator-kylin git commit: minor, yarn app classpath shall be ', ' separated, though ':' seems to work as well

Posted by li...@apache.org.
minor, yarn app classpath shall be ',' separated, though ':' seems to work as well


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

Branch: refs/heads/inverted-index
Commit: 752187b93509aa9e8d5222a5f21ecb11b4b4aa09
Parents: a5daec6
Author: Li, Yang <ya...@ebay.com>
Authored: Fri Feb 13 13:50:01 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Fri Feb 13 13:50:01 2015 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/752187b9/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
index 84344ad..4d6d8d4 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
@@ -121,11 +121,14 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
         String kylinHiveDependency = System.getProperty("kylin.hive.dependency");
         logger.info("append kylin.hive.dependency: " + kylinHiveDependency + " to " + MAP_REDUCE_CLASSPATH);
         if (kylinHiveDependency != null) {
-            final String classpath = job.getConfiguration().get(MAP_REDUCE_CLASSPATH);
+            // yarn classpath is comma separated
+            kylinHiveDependency = kylinHiveDependency.replace(":", ",");
+            Configuration jobConf = job.getConfiguration();
+            final String classpath = jobConf.get(MAP_REDUCE_CLASSPATH);
             if (classpath == null) {
-                job.getConfiguration().set(MAP_REDUCE_CLASSPATH, kylinHiveDependency);
+                jobConf.set(MAP_REDUCE_CLASSPATH, kylinHiveDependency);
             } else {
-                job.getConfiguration().set(MAP_REDUCE_CLASSPATH, classpath + ":" + kylinHiveDependency);
+                jobConf.set(MAP_REDUCE_CLASSPATH, classpath + "," + kylinHiveDependency);
             }
         }
         if (isAsync) {


[35/41] incubator-kylin git commit: fix build cube bug

Posted by li...@apache.org.
fix build cube bug


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

Branch: refs/heads/inverted-index
Commit: c0848484f5a9aa4f3eb0fa4f604caf5c2b6c7fbe
Parents: 6255da9
Author: jiazhong <ji...@ebay.com>
Authored: Fri Feb 27 00:08:53 2015 +0800
Committer: jiazhong <ji...@ebay.com>
Committed: Fri Feb 27 00:08:53 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/cubes.js | 122 +++++++++++++++++---------------
 1 file changed, 64 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c0848484/webapp/app/js/controllers/cubes.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubes.js b/webapp/app/js/controllers/cubes.js
old mode 100644
new mode 100755
index d4fd0a5..d576955
--- a/webapp/app/js/controllers/cubes.js
+++ b/webapp/app/js/controllers/cubes.js
@@ -76,10 +76,12 @@ KylinApp
         };
 
         $scope.loadDetail = function (cube) {
+            var defer = $q.defer();
             if (!cube.detail) {
                 CubeDescService.get({cube_name: cube.name}, {}, function (detail) {
                     if (detail.length > 0&&detail[0].hasOwnProperty("name")) {
                         cube.detail = detail[0];
+                        defer.resolve(cube.detail);
                     }else{
                         SweetAlert.swal('Oops...', "No cube detail info loaded.", 'error');
                     }
@@ -93,6 +95,7 @@ KylinApp
                     }
                 });
             }
+            return defer.promise;
         };
 
         $scope.getTotalSize = function (cubes) {
@@ -250,70 +253,73 @@ KylinApp
         };
 
         $scope.startJobSubmit = function (cube) {
-            ModelService.get({model_name: cube.detail.model_name}, function (model) {
-                if (model.name) {
+            $scope.loadDetail(cube).then(function(cubeDetail){
+                ModelService.get({model_name: cubeDetail.model_name}, function (model) {
+                    if (model.name) {
                         $scope.metaModel = MetaModel;
                         $scope.metaModel.model= model;
-                    if (model.partition_desc.partition_date_column) {
-                        $modal.open({
-                            templateUrl: 'jobSubmit.html',
-                            controller: jobSubmitCtrl,
-                            resolve: {
-                                cube: function () {
-                                    return cube;
-                                },
-                                metaModel:function(){
-                                    return $scope.metaModel;
-                                },
-                                buildType: function () {
-                                    return 'BUILD';
-                                }
-                            }
-                        });
-                    }
-                    else {
-
-                        SweetAlert.swal({
-                            title: '',
-                            text: "Are you sure to start the build? ",
-                            type: '',
-                            showCancelButton: true,
-                            confirmButtonColor: '#DD6B55',
-                            confirmButtonText: "Yes",
-                            closeOnConfirm: true
-                        }, function(isConfirm) {
-                            if(isConfirm){
-
-                            loadingRequest.show();
-                            CubeService.rebuildCube(
-                                {
-                                    cubeId: cube.name
-                                },
-                                {
-                                    buildType: 'BUILD',
-                                    startTime: 0,
-                                    endTime: 0
-                                }, function (job) {
-
-                                    loadingRequest.hide();
-                                    SweetAlert.swal('Success!', 'Rebuild job was submitted successfully', 'success');
-                                },function(e){
-
-                                    loadingRequest.hide();
-                                    if(e.data&& e.data.exception){
-                                        var message =e.data.exception;
-                                        var msg = !!(message) ? message : 'Failed to take action.';
-                                        SweetAlert.swal('Oops...', msg, 'error');
-                                    }else{
-                                        SweetAlert.swal('Oops...', "Failed to take action.", 'error');
+                        if (model.partition_desc.partition_date_column) {
+                            $modal.open({
+                                templateUrl: 'jobSubmit.html',
+                                controller: jobSubmitCtrl,
+                                resolve: {
+                                    cube: function () {
+                                        return cube;
+                                    },
+                                    metaModel:function(){
+                                        return $scope.metaModel;
+                                    },
+                                    buildType: function () {
+                                        return 'BUILD';
                                     }
-                                });
-                            }
+                                }
+                            });
+                        }
+                        else {
+
+                            SweetAlert.swal({
+                                title: '',
+                                text: "Are you sure to start the build? ",
+                                type: '',
+                                showCancelButton: true,
+                                confirmButtonColor: '#DD6B55',
+                                confirmButtonText: "Yes",
+                                closeOnConfirm: true
+                            }, function(isConfirm) {
+                                if(isConfirm){
+
+                                    loadingRequest.show();
+                                    CubeService.rebuildCube(
+                                        {
+                                            cubeId: cube.name
+                                        },
+                                        {
+                                            buildType: 'BUILD',
+                                            startTime: 0,
+                                            endTime: 0
+                                        }, function (job) {
+
+                                            loadingRequest.hide();
+                                            SweetAlert.swal('Success!', 'Rebuild job was submitted successfully', 'success');
+                                        },function(e){
+
+                                            loadingRequest.hide();
+                                            if(e.data&& e.data.exception){
+                                                var message =e.data.exception;
+                                                var msg = !!(message) ? message : 'Failed to take action.';
+                                                SweetAlert.swal('Oops...', msg, 'error');
+                                            }else{
+                                                SweetAlert.swal('Oops...', "Failed to take action.", 'error');
+                                            }
+                                        });
+                                }
 
-                        });
+                            });
+                        }
                     }
-                }
+                });
             });
+
         };
 
         $scope.startRefresh = function (cube) {


[19/41] incubator-kylin git commit: correct line endings, make hive loader compatible with older hadoop

Posted by li...@apache.org.
correct line endings, make hive loader compatible with older hadoop


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

Branch: refs/heads/inverted-index
Commit: 64c25849e5101ef283579a910373e72a056b13ce
Parents: 520a1ad
Author: Li, Yang <ya...@ebay.com>
Authored: Fri Feb 13 11:14:21 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Fri Feb 13 11:14:21 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    |  2 +-
 .../apache/kylin/common/util/HiveClient.java    | 31 +++++++++++++++++---
 2 files changed, 28 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/64c25849/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
index 5138c0b..006cf34 100644
--- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -413,7 +413,7 @@ public class KylinConfig {
 
     public String[] getRestServers() {
         String nodes = getOptional(KYLIN_REST_SERVERS);
-        if (nodes == null)
+        if (StringUtils.isBlank(nodes))
             return null;
         return nodes.split("\\s*,\\s*");
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/64c25849/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/HiveClient.java b/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
index 2588257..cfeea31 100644
--- a/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
+++ b/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
@@ -33,7 +33,6 @@ import org.apache.hadoop.hive.ql.CommandNeedRetryException;
 import org.apache.hadoop.hive.ql.Driver;
 import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
 import org.apache.hadoop.hive.ql.session.SessionState;
-import org.apache.hadoop.hive.ql.stats.StatsUtils;
 
 /**
  * Hive meta API client for Kylin
@@ -94,7 +93,7 @@ public class HiveClient {
         CommandProcessorResponse response = getDriver().run(hql);
         int retCode = response.getResponseCode();
         if (retCode != 0) {
-            String err  = response.getErrorMessage();
+            String err = response.getErrorMessage();
             throw new IOException("Failed to execute hql [" + hql + "], error message is: " + err);
         }
     }
@@ -125,11 +124,35 @@ public class HiveClient {
     }
 
     public long getFileSizeForTable(Table table) {
-        return StatsUtils.getTotalSize(new org.apache.hadoop.hive.ql.metadata.Table(table));
+        return getBasicStatForTable(new org.apache.hadoop.hive.ql.metadata.Table(table), StatsSetupConst.TOTAL_SIZE);
     }
 
     public long getFileNumberForTable(Table table) {
-        return StatsUtils.getBasicStatForTable(new org.apache.hadoop.hive.ql.metadata.Table(table), StatsSetupConst.NUM_FILES);
+        return getBasicStatForTable(new org.apache.hadoop.hive.ql.metadata.Table(table), StatsSetupConst.NUM_FILES);
+    }
+
+    /**
+     * COPIED FROM org.apache.hadoop.hive.ql.stats.StatsUtil for backward compatibility
+     * 
+     * Get basic stats of table
+     * @param table
+     *          - table
+     * @param statType
+     *          - type of stats
+     * @return value of stats
+     */
+    public static long getBasicStatForTable(org.apache.hadoop.hive.ql.metadata.Table table, String statType) {
+        Map<String, String> params = table.getParameters();
+        long result = 0;
+
+        if (params != null) {
+            try {
+                result = Long.parseLong(params.get(statType));
+            } catch (NumberFormatException e) {
+                result = 0;
+            }
+        }
+        return result;
     }
 
 }


[15/41] incubator-kylin git commit: relax kylin_home constrains

Posted by li...@apache.org.
relax kylin_home constrains


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

Branch: refs/heads/inverted-index
Commit: ba4f737ecc3a7f3344e676bd2ec1c2163593b494
Parents: c2fe3eb
Author: honma <ho...@ebay.com>
Authored: Thu Feb 12 18:31:22 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Thu Feb 12 18:31:22 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    | 31 +++++++++++-----
 .../org/apache/kylin/common/util/BasicTest.java |  5 +--
 .../kylin/job/engine/JobEngineConfig.java       | 38 --------------------
 .../java/org/apache/kylin/job/DeployUtil.java   | 18 ++++++----
 4 files changed, 35 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ba4f737e/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
index add87e0..5138c0b 100644
--- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -293,7 +293,11 @@ public class KylinConfig {
         if (StringUtils.isNotEmpty(jobJar)) {
             return jobJar;
         }
-        return getFileName(getKylinHome() + File.separator + "lib", JOB_JAR_NAME_PATTERN);
+        String kylinHome = getKylinHome();
+        if (StringUtils.isEmpty(kylinHome)) {
+            return "";
+        }
+        return getFileName(kylinHome + File.separator + "lib", JOB_JAR_NAME_PATTERN);
     }
 
     public void overrideKylinJobJarPath(String path) {
@@ -308,7 +312,11 @@ public class KylinConfig {
         if (StringUtils.isNotEmpty(coprocessorJar)) {
             return coprocessorJar;
         }
-        return getFileName(getKylinHome() + File.separator + "lib", COPROCESSOR_JAR_NAME_PATTERN);
+        String kylinHome = getKylinHome();
+        if (StringUtils.isEmpty(kylinHome)) {
+            throw new RuntimeException("getCoprocessorLocalJar needs KYLIN_HOME");
+        }
+        return getFileName(kylinHome + File.separator + "lib", COPROCESSOR_JAR_NAME_PATTERN);
     }
 
     private static String getFileName(String homePath, Pattern pattern) {
@@ -381,9 +389,9 @@ public class KylinConfig {
         return getOptional(KYLIN_TMP_HDFS_DIR, "/tmp/kylin");
     }
 
-//    public String getYarnStatusServiceUrl() {
-//        return getOptional(KYLIN_JOB_YARN_APP_REST_CHECK_STATUS_URL, null);
-//    }
+    //    public String getYarnStatusServiceUrl() {
+    //        return getOptional(KYLIN_JOB_YARN_APP_REST_CHECK_STATUS_URL, null);
+    //    }
 
     public int getYarnStatusCheckIntervalSeconds() {
         return Integer.parseInt(getOptional(KYLIN_JOB_YARN_APP_REST_CHECK_INTERVAL_SECONDS, "60"));
@@ -458,12 +466,12 @@ public class KylinConfig {
 
     private String getOptional(String prop) {
         final String property = System.getProperty(prop);
-        return property != null?property:kylinConfig.getString(prop);
+        return property != null ? property : kylinConfig.getString(prop);
     }
 
     private String getOptional(String prop, String dft) {
         final String property = System.getProperty(prop);
-        return property != null?property:kylinConfig.getString(prop, dft);
+        return property != null ? property : kylinConfig.getString(prop, dft);
     }
 
     private String getRequired(String prop) {
@@ -508,10 +516,11 @@ public class KylinConfig {
         String kylinHome = System.getenv(KYLIN_HOME);
         if (StringUtils.isEmpty(kylinHome)) {
             logger.warn("KYLIN_HOME has not been set");
-            throw new RuntimeException("KYLIN_HOME has not been set");
+            return kylinHome;
         }
         return kylinHome;
     }
+
     public void printProperties() throws IOException {
         try {
             kylinConfig.save(System.out);
@@ -528,7 +537,11 @@ public class KylinConfig {
             return getKylinPropertiesFile(kylinConfHome);
         }
 
-        String path = getKylinHome() + File.separator + "conf";
+        String kylinHome = getKylinHome();
+        if (StringUtils.isEmpty(kylinHome))
+            throw new RuntimeException("getKylinProperties needs KYLIN_HOME");
+
+        String path = kylinHome + File.separator + "conf";
         return getKylinPropertiesFile(path);
 
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ba4f737e/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java b/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
index 59ed5f3..1fe9dfd 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
@@ -18,6 +18,7 @@
 
 package org.apache.kylin.common.util;
 
+import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
@@ -58,10 +59,6 @@ public class BasicTest {
     @Test
     @Ignore("convenient trial tool for dev")
     public void test1() throws Exception {
-        String x =  MetricType.DimensionAsMetric.toString();
-        System.out.println(x);
-        MetricType y = MetricType.valueOf(x);
-        System.out.println(y == MetricType.DimensionAsMetric);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ba4f737e/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
index 6551505..3c01e09 100644
--- a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
+++ b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
@@ -114,44 +114,6 @@ public class JobEngineConfig {
         return config.getHdfsWorkingDirectory();
     }
 
-    /**
-     * @return the kylinJobJarPath
-     */
-    public String getKylinJobJarPath() {
-        return config.getKylinJobJarPath();
-    }
-
-    /**
-     * @return the runAsRemoteCommand
-     */
-    public boolean isRunAsRemoteCommand() {
-        return config.getRunAsRemoteCommand();
-    }
-
-    /**
-     * @return the remoteHadoopCliHostname
-     */
-    public String getRemoteHadoopCliHostname() {
-        return config.getRemoteHadoopCliHostname();
-    }
-
-    /**
-     * @return the remoteHadoopCliUsername
-     */
-    public String getRemoteHadoopCliUsername() {
-        return config.getRemoteHadoopCliUsername();
-    }
-
-    /**
-     * @return the remoteHadoopCliPassword
-     */
-    public String getRemoteHadoopCliPassword() {
-        return config.getRemoteHadoopCliPassword();
-    }
-
-    public String getMapReduceCmdExtraArgs() {
-        return config.getMapReduceCmdExtraArgs();
-    }
 
     /**
      * @return the maxConcurrentJobLimit

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ba4f737e/job/src/test/java/org/apache/kylin/job/DeployUtil.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/DeployUtil.java b/job/src/test/java/org/apache/kylin/job/DeployUtil.java
index 0cde646..9acd2c3 100644
--- a/job/src/test/java/org/apache/kylin/job/DeployUtil.java
+++ b/job/src/test/java/org/apache/kylin/job/DeployUtil.java
@@ -25,6 +25,7 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hbase.util.Pair;
 import org.apache.kylin.job.dataGen.FactTableGenerator;
 import org.apache.maven.model.Model;
@@ -82,12 +83,17 @@ public class DeployUtil {
         File originalJobJar = files.getFirst();
         File originalCoprocessorJar = files.getSecond();
 
-        File targetJobJar = new File(config().getKylinJobJarPath());
+        String jobJarPath = config().getKylinJobJarPath();
+        if (StringUtils.isEmpty(jobJarPath)) {
+            throw new RuntimeException("deployJobJars cannot find job jar");
+        }
+
+        File targetJobJar = new File(jobJarPath);
         File jobJarRenamedAsTarget = new File(originalJobJar.getParentFile(), targetJobJar.getName());
         if (originalJobJar.equals(jobJarRenamedAsTarget) == false) {
             FileUtils.copyFile(originalJobJar, jobJarRenamedAsTarget);
         }
-        
+
         File targetCoprocessorJar = new File(config().getCoprocessorLocalJar());
         File coprocessorJarRenamedAsTarget = new File(originalCoprocessorJar.getParentFile(), targetCoprocessorJar.getName());
         if (originalCoprocessorJar.equals(coprocessorJarRenamedAsTarget) == false) {
@@ -113,7 +119,7 @@ public class DeployUtil {
         File coprocessorJar = new File("../storage/target", "kylin-storage-" + version + "-coprocessor.jar");
         return new Pair<File, File>(jobJar, coprocessorJar);
     }
-    
+
     private static void execCliCommand(String cmd) throws IOException {
         config().getCliCommandExecutor().execute(cmd);
     }
@@ -211,7 +217,7 @@ public class DeployUtil {
         temp.delete();
 
         HiveClient hiveClient = new HiveClient();
-        
+
         // create hive tables
         hiveClient.executeHQL("CREATE DATABASE IF NOT EXISTS EDW");
         hiveClient.executeHQL(generateCreateTableHql(metaMgr.getTableDesc(TABLE_CAL_DT.toUpperCase())));
@@ -234,7 +240,7 @@ public class DeployUtil {
     }
 
     private static String[] generateCreateTableHql(TableDesc tableDesc) {
-        
+
         String dropsql = "DROP TABLE IF EXISTS " + tableDesc.getIdentity();
         StringBuilder ddl = new StringBuilder();
 
@@ -253,7 +259,7 @@ public class DeployUtil {
         ddl.append("ROW FORMAT DELIMITED FIELDS TERMINATED BY ','" + "\n");
         ddl.append("STORED AS TEXTFILE");
 
-        return new String[] {dropsql, ddl.toString()};
+        return new String[] { dropsql, ddl.toString() };
     }
 
 }


[11/41] incubator-kylin git commit: add youtube video link

Posted by li...@apache.org.
add youtube video link


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

Branch: refs/heads/inverted-index
Commit: 9d91f1e4b220695eef3868cbace8bf66cf1e9a90
Parents: e23472c
Author: lukehan <lu...@apache.org>
Authored: Thu Feb 12 16:00:49 2015 +0800
Committer: lukehan <lu...@apache.org>
Committed: Thu Feb 12 16:00:49 2015 +0800

----------------------------------------------------------------------
 .../2015-01-20-welcome-to-jekyll.markdown       |  25 ----
 docs/website/about/index.md                     |   1 +
 docs/website/index.html                         | 116 -------------------
 3 files changed, 1 insertion(+), 141 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/9d91f1e4/docs/website/_posts/2015-01-20-welcome-to-jekyll.markdown
----------------------------------------------------------------------
diff --git a/docs/website/_posts/2015-01-20-welcome-to-jekyll.markdown b/docs/website/_posts/2015-01-20-welcome-to-jekyll.markdown
deleted file mode 100644
index a6e43bd..0000000
--- a/docs/website/_posts/2015-01-20-welcome-to-jekyll.markdown
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: post
-title:  "Welcome to Jekyll!"
-date:   2015-01-20 21:52:58
-categories: jekyll update
----
-You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
-
-To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
-
-Jekyll also offers powerful support for code snippets:
-
-{% highlight ruby %}
-def print_hi(name)
-  puts "Hi, #{name}"
-end
-print_hi('Tom')
-#=> prints 'Hi, Tom' to STDOUT.
-{% endhighlight %}
-
-Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll’s dedicated Help repository][jekyll-help].
-
-[jekyll]:      http://jekyllrb.com
-[jekyll-gh]:   https://github.com/jekyll/jekyll
-[jekyll-help]: https://github.com/jekyll/jekyll-help

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/9d91f1e4/docs/website/about/index.md
----------------------------------------------------------------------
diff --git a/docs/website/about/index.md b/docs/website/about/index.md
index 100a57b..facf995 100644
--- a/docs/website/about/index.md
+++ b/docs/website/about/index.md
@@ -13,6 +13,7 @@ title: About
   <div class="row">
           <div class="col-sm-12 col-md-12">
             <div >
+            <p>Video on Youtube: <a href="http://youtu.be/xg4sm_N2_CM" target="_blank">Apache Kylin</a></p>
             <p class="aboutkylin" style="font-size:1.2em">Apache Kylin, which is a distributed and scalable OLAP engine built on Hadoop to support
 extremely large datasets, developed and contributed by <a href="http://www.ebayinc.com/" target="_blank">eBay Inc</a> to open source community on Oct 1, 2014 and has been Apache Incubator Project since Nov 25, 2014. Refer to announcement on eBay Tech Blog for more detail: <a href="http://www.ebaytechblog.com/2014/10/20/announcing-kylin-extreme-olap-engine-for-big-data" target="_blank">Announcing Kylin: Extreme OLAP Engine for Big Data</a> </p>
             

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/9d91f1e4/docs/website/index.html
----------------------------------------------------------------------
diff --git a/docs/website/index.html b/docs/website/index.html
deleted file mode 100644
index ec8f3ed..0000000
--- a/docs/website/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
----
-layout: default
-title: Home
----
-
-
-<main id="main" >
-  <div class="container" >
-    <div id="zero" class=" main" >
-      <header style=" padding:2em 0 4em 0">
-        <div class="container" >
-
-          <h4 class="section-title"><span>Apache Kylin Overview</span></h4>
-          <div class="row" style="margin-top:-20px;">
-            <div class="col-sm-12 col-md-12">
-              <p class="title_text"> Kylin has been accepted as Apache Incubator Project on Nov 25, 2014.</p>
-              <p class="title_text"> Apache Kylin is an open source Distributed Analytics Engine from eBay Inc. that provides SQL interface and multi-dimensional analysis (OLAP) on Hadoop supporting extremely large datasets</p>
-              <img id="diagram" src="assets/images/kylin_diagram.png"> </div>
-          </div>
-        </div>
-        <!-- /container --> 
-        
-      </header>
-    </div>
-    <!-- / section --> 
-  </div>
-  <!-- /container -->
-  
-  <section id="second" class="main">
-    <header style="background-color:#efefef;">
-      <div class="container"  >
-        <h4 class="section-title"><span> What is Kylin? </span></h4>
-        <!-- second-->
-        <div class="row">
-          <div class="col-sm-12 col-md-12">
-            <div align="left">
-              <p> <b>- Extremely Fast OLAP Engine at Scale: </b><br/>
-              <div class="indent">Kylin is designed to reduce query latency on Hadoop for 10+ billions of rows of data</div>
-              </p>
-              <p> <b>- ANSI SQL Interface on Hadoop: </b><br/>
-              <div class="indent">Kylin offers ANSI SQL on Hadoop and supports most ANSI SQL query functions</div>
-              </p>
-              <p> <b>- Interactive Query Capability: </b><br/>
-              <div class="indent">Users can interact with Hadoop data via Kylin at sub-second latency, better than Hive queries for the same dataset</div>
-              </p>
-              <p> <b>- MOLAP Cube:</b><br/>
-              <div class="indent">User can define a data model and pre-build in Kylin with more than 10+ billions of raw data records</div>
-              </p>
-              <p> <b>- Seamless Integration with BI Tools:</b><br/>
-              <div class="indent">Kylin currently offers integration capability with BI Tools like Tableau.  Integration with Microstrategy and Excel is coming soon</div>
-              </p>
-              <p> <b>- Other Highlights:</b> <br/>
-              <div class="indent">- Job Management and Monitoring <br/>
-                - Compression and Encoding Support <br/>
-                - Incremental Refresh of Cubes <br/>
-                - Leverage HBase Coprocessor for query latency <br/>
-                - Approximate Query Capability for distinct Count (HyperLogLog) <br/>
-                - Easy Web interface to manage, build, monitor and query cubes <br/>
-                - Security capability to set ACL at Cube/Project Level <br/>
-                - Support LDAP Integration </div>
-              </p>
-            </div>
-          </div>
-        </div>
-      </div>
-      <!-- /container --> 
-      
-    </header>
-  </section>
-  
-  <!-- second -->
-  <section id="first" class="main">
-    <header>
-      <div class="container" >
-        <h4 class="section-title"><span>Kylin Ecosystem</span></h4>
-        <div class="row">
-          <div class="col-sm-7 col-md-7">
-            <p> </p>
-            <p><b>Kylin Core:</b> Fundamental framework of Kylin OLAP Engine comprises of Metadata Engine, Query Engine, Job Engine and Storage Engine to run the entire stack. It also includes a REST Server to service client requests</p>
-            <p><b>Extensions:</b> Plugins to support additional functions and features </p>
-            <p><b>Integration:</b> Lifecycle Management Support to integrate with Job Scheduler,  ETL, Monitoring and Alerting Systems </p>
-            <p><b>User Interface:</b> Allows third party users to build customized user-interface atop Kylin core</p>
-            <p><b>Drivers:</b> ODBC and JDBC drivers to support different tools and products, such as Tableau</p>
-          </div>
-          <div class="col-sm-5 col-md-5"> <img id="core" src="assets/images/core.png"> </div>
-        </div>
-        <!-- /container --> 
-      </div>
-    </header>
-  </section>
-  
-  <!-- fifth-->
-  <section id="fifth" class="main">
-    <header style="background-color:#efefef;" >
-      <div class="container" >
-        <h4 class="section-title"><span>For Developers</span></h4>
-        <div class="row">
-          <div class="col-sm-4 col-md-4">
-            <p><b>Source Code:</b></p>
-            <p class="less-margin"><a href="https://github.com/apache/incubator-kylin" target="_blank">Fork me on GitHub</a></p>
-          </div>
-          <div class="col-sm-4 col-md-4">
-            <p><b>Google Group:</b> </p>
-            <p class="less-margin"><a href="https://groups.google.com/forum/#!forum/kylin-olap" target="_blank"> Kylin OLAP Group</a></p>
-          </div>
-          <div class="col-sm-4 col-md-4">
-            <p><b>Developer Mail:</b></p>
-            <p class="less-margin"> <a href="mailto:dev@kylin.incubator.apache.org" target="_blank"> dev@kylin.incubator.apache.org</a></p>
-          </div>
-        </div>
-      </div>
-      <!-- /container --> 
-      
-    </header>
-  </section>
-</main>


[05/41] incubator-kylin git commit: Remove host info

Posted by li...@apache.org.
Remove host info


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

Branch: refs/heads/inverted-index
Commit: 5a6563f0e1d94bf0abfb8952c177acf6c228ed4d
Parents: 524b825
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Thu Feb 12 14:29:07 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Thu Feb 12 14:29:07 2015 +0800

----------------------------------------------------------------------
 jdbc/pom.xml                                                       | 1 -
 .../java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java    | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5a6563f0/jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index a1dce3c..7c73dd0 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -25,7 +25,6 @@
 	<!-- More project information. -->
 	<name>Kylin:Jdbc</name>
 	<description>kylin jdbc on optiq avatica</description>
-	<url>https://github.scm.corp.ebay.com/BIPlatform/Kylin</url>
 
 	<parent>
 		<groupId>org.apache.kylin</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5a6563f0/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java b/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java
index 4fd64e5..a92da92 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/hbase/TestHbaseClient.java
@@ -87,7 +87,7 @@ public class TestHbaseClient {
         foo(3, 0);
 
         Configuration conf = HBaseConfiguration.create();
-        conf.set("hbase.zookeeper.quorum", "yadesk00.corp.ebay.com");
+        conf.set("hbase.zookeeper.quorum", "hbase_host");
         conf.set("zookeeper.znode.parent", "/hbase-unsecure");
 
         HTable table = new HTable(conf, "test1");


[36/41] incubator-kylin git commit: Merge pull request #428 from janzhongi/inverted-index

Posted by li...@apache.org.
Merge pull request #428 from janzhongi/inverted-index

fix build cube bug

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

Branch: refs/heads/inverted-index
Commit: a7d0ea38ec09d43d6867629997ad004e8128f059
Parents: 299df1f c084848
Author: Zhong,Jian <ji...@ebay.com>
Authored: Fri Feb 27 00:10:13 2015 +0800
Committer: Zhong,Jian <ji...@ebay.com>
Committed: Fri Feb 27 00:10:13 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/cubes.js | 122 +++++++++++++++++---------------
 1 file changed, 64 insertions(+), 58 deletions(-)
----------------------------------------------------------------------



[17/41] incubator-kylin git commit: Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index

Posted by li...@apache.org.
Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index


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

Branch: refs/heads/inverted-index
Commit: 520a1adefe10e9004f12b5dc75edd563cf16a227
Parents: 28fe5c2 ba4f737
Author: Li, Yang <ya...@ebay.com>
Authored: Fri Feb 13 09:03:36 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Fri Feb 13 09:03:36 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    |   31 +-
 .../apache/kylin/common/util/SplittedBytes.java |    4 +-
 .../org/apache/kylin/common/util/BasicTest.java |    7 +-
 docs/website/_includes/header.cn.html           |    1 +
 docs/website/_includes/header.html              |    1 +
 .../2015-01-20-welcome-to-jekyll.markdown       |   25 -
 docs/website/about/index.md                     |    1 +
 docs/website/assets/css/styles.css              | 1303 +++++++++---------
 docs/website/download/index.md                  |   45 +
 docs/website/index.html                         |  116 --
 .../64ac4f82-f2af-476e-85b9-f0805001014e.dict   |  Bin 0 -> 554 bytes
 .../f5e85644-db92-42b5-9ad5-240ab227d7b0.dict   |  Bin 0 -> 554 bytes
 .../16d8185c-ee6b-4f8c-a919-756d9809f937.dict   |  Bin 2630 -> 2515 bytes
 .../c12ae49d-9dbe-4a58-b169-19afac317696.dict   |  Bin 2630 -> 2515 bytes
 .../eaed91b0-4182-4ee5-a733-1047a622ee29.dict   |  Bin 2630 -> 2515 bytes
 .../ec83ebce-7534-4e62-ac6d-7445ee141ab4.dict   |  Bin 2630 -> 2515 bytes
 .../7228fad8-a764-4bd4-8934-50e0d7cbcb19.dict   |  Bin 3105 -> 2940 bytes
 .../8f92faa4-7d2d-455c-8623-6e1d1b272afe.dict   |  Bin 3105 -> 2940 bytes
 .../ad09f2d5-054a-4e1b-a776-7cc07399a6c1.dict   |  Bin 3105 -> 2940 bytes
 .../eacccee7-d120-4f4d-97d0-c99a5b83ec32.dict   |  Bin 3105 -> 2940 bytes
 .../2602386c-debb-4968-8d2f-b52b8215e385.dict   |  Bin 2000 -> 1841 bytes
 .../4243889f-bc81-4807-a975-7041bbbf35e7.dict   |  Bin 2000 -> 1841 bytes
 .../494683c1-52d1-4d9a-a3f7-8c53b30fd898.dict   |  Bin 2000 -> 1841 bytes
 .../8b4b1c06-fb74-486b-a2ad-74420afebcda.dict   |  Bin 2000 -> 1841 bytes
 .../ac520edd-f9d2-419f-a7de-587bfb97dc81.dict   |  Bin 2000 -> 1841 bytes
 .../0410d2c4-4686-40bc-ba14-170042a2de94.dict   |  Bin 1537 -> 1498 bytes
 .../51ff5e6c-22b3-444e-9915-d376a10f20cb.dict   |  Bin 1537 -> 1498 bytes
 .../a4e57e55-48fc-4f25-a9c8-485deed25925.dict   |  Bin 1537 -> 1498 bytes
 .../aceae914-4246-4251-a0c2-692fe7a300df.dict   |  Bin 1537 -> 1498 bytes
 .../b298089f-9656-4693-b9b2-8fea46f06dd5.dict   |  Bin 1537 -> 1498 bytes
 .../c2af25cf-6c79-45e6-a6f6-6d2a8ecc6592.dict   |  Bin 1537 -> 1498 bytes
 .../0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict   |  Bin 640 -> 661 bytes
 .../14fe66b3-5956-498c-bd93-40182cac5510.dict   |  Bin 640 -> 661 bytes
 .../1d383a36-81b9-4177-a822-04eab3683e5b.dict   |  Bin 640 -> 661 bytes
 .../c6bf9b51-6e90-4337-8082-4e2fdf78307f.dict   |  Bin 640 -> 661 bytes
 .../0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict   |  Bin 2264 -> 2189 bytes
 .../31edf35b-ffca-4f24-8229-f87dc34e3087.dict   |  Bin 2264 -> 2189 bytes
 .../652bd393-678a-4f16-a504-fd8ce1229355.dict   |  Bin 2264 -> 2189 bytes
 .../792eb972-d046-48e6-9428-f6a3aed92fad.dict   |  Bin 2264 -> 2189 bytes
 .../914536f8-1e14-43e9-b8ef-525bb5bdb3b2.dict   |  Bin 2264 -> 2189 bytes
 .../d25e554e-deac-4e4a-9289-96f0d121d8fc.dict   |  Bin 2264 -> 2189 bytes
 .../invertedindex/index/TableRecordInfo.java    |    7 +-
 .../kylin/invertedindex/model/IIDesc.java       |   40 +-
 jdbc/pom.xml                                    |    2 +
 .../apache/kylin/job/CubeMetadataUpgrade.java   |   25 +-
 .../kylin/job/engine/JobEngineConfig.java       |   38 -
 .../java/org/apache/kylin/job/DeployUtil.java   |   18 +-
 .../measure/fixedlen/FixedHLLCodec.java         |    2 +-
 .../measure/fixedlen/FixedLenMeasureCodec.java  |    8 +-
 .../apache/kylin/metadata/model/DataType.java   |    1 +
 .../kylin/metadata/model/FunctionDesc.java      |   12 +-
 .../AdjustForWeeklyMatchedRealization.java      |    8 +-
 .../apache/kylin/query/test/IIQueryTest.java    |   11 -
 .../apache/kylin/query/test/KylinQueryTest.java |    7 +-
 .../apache/kylin/query/test/KylinTestBase.java  |    1 -
 .../resources/query/sql_fast_common/query00.sql |    5 +
 .../query_count_distinct_on_dimension.sql       |    1 -
 ...ery_count_distinct_on_dimension.sql.disabled |    2 +
 script/build.sh                                 |    0
 script/compress.sh                              |    0
 script/download-tomcat.sh                       |    0
 script/package.sh                               |    0
 script/prepare.sh                               |    0
 .../kylin/storage/hbase/CubeStorageEngine.java  |    2 +-
 .../hbase/coprocessor/CoprocessorConstants.java |    2 +-
 .../endpoint/EndpointAggregators.java           |   25 +-
 .../endpoint/EndpointTupleIterator.java         |   22 +-
 67 files changed, 842 insertions(+), 931 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/520a1ade/script/compress.sh
----------------------------------------------------------------------
diff --cc script/compress.sh
index f7d860a,4dd91f3..f7d860a
mode 100644,100755..100755
--- a/script/compress.sh
+++ b/script/compress.sh


[20/41] incubator-kylin git commit: Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index

Posted by li...@apache.org.
Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index


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

Branch: refs/heads/inverted-index
Commit: a5daec6cec7bbaf69dd327c2d20af363f04e85f8
Parents: 64c2584 875c634
Author: Li, Yang <ya...@ebay.com>
Authored: Fri Feb 13 11:15:27 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Fri Feb 13 11:15:27 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    | 11 +++++----
 .../kylin/job/engine/JobEngineConfig.java       | 24 ++++++++------------
 2 files changed, 15 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/a5daec6c/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------


[13/41] incubator-kylin git commit: enable distinct count query in IIQuery test

Posted by li...@apache.org.
enable distinct count query in IIQuery test


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

Branch: refs/heads/inverted-index
Commit: c2fe3eb3b5f9be25e1404b9e5336bd0febde8654
Parents: 579e793
Author: honma <ho...@ebay.com>
Authored: Thu Feb 12 17:39:13 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Thu Feb 12 17:39:23 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/query/test/IIQueryTest.java    | 16 ----------------
 .../org/apache/kylin/query/test/KylinQueryTest.java |  7 ++-----
 .../org/apache/kylin/query/test/KylinTestBase.java  |  1 -
 .../query_count_distinct_on_dimension.sql           |  1 -
 .../query_count_distinct_on_dimension.sql.disabled  |  2 ++
 5 files changed, 4 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c2fe3eb3/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java b/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
index d36ffb9..f5b42d5 100644
--- a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
@@ -18,7 +18,6 @@
 
 package org.apache.kylin.query.test;
 
-import java.io.File;
 import java.util.Map;
 
 import org.apache.kylin.metadata.realization.RealizationType;
@@ -37,7 +36,6 @@ public class IIQueryTest extends KylinQueryTest {
     public static void setUp() throws Exception {
 
         KylinQueryTest.setUp();//invoke super class
-        distinctCountSupported = true;
 
         Map<RealizationType, Integer> priorities = Maps.newHashMap();
         priorities.put(RealizationType.INVERTED_INDEX, 0);
@@ -49,7 +47,6 @@ public class IIQueryTest extends KylinQueryTest {
     @AfterClass
     public static void tearDown() throws Exception {
         KylinQueryTest.tearDown();//invoke super class
-        distinctCountSupported = true;
 
         Map<RealizationType, Integer> priorities = Maps.newHashMap();
         priorities.put(RealizationType.INVERTED_INDEX, 1);
@@ -62,17 +59,4 @@ public class IIQueryTest extends KylinQueryTest {
         execAndCompQuery("src/test/resources/query/sql_ii", null, true);
     }
 
-    @Test
-    public void testSingleRunQuery() throws Exception {
-        String queryFileName = "src/test/resources/query/sql_distinct/query00.sql";
-
-        File sqlFile = new File(queryFileName);
-        runSQL(sqlFile, true, true);
-        runSQL(sqlFile, true, false);
-    }
-
-    @Test
-    public void testDistinctCountQuery() throws Exception {
-        super.testDistinctCountQuery();
-    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c2fe3eb3/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java b/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
index bcd5e25..8c3901c 100644
--- a/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
@@ -192,11 +192,7 @@ public class KylinQueryTest extends KylinTestBase {
 
     @Test
     public void testDistinctCountQuery() throws Exception {
-        if (distinctCountSupported) {
-            batchExecuteQuery("src/test/resources/query/sql_distinct");
-        } else {
-            System.out.println("distinct count query omiited");
-        }
+        batchExecuteQuery("src/test/resources/query/sql_distinct");
     }
 
     @Test
@@ -247,6 +243,7 @@ public class KylinQueryTest extends KylinTestBase {
         }
     }
 
+
     @Test
     public void testDynamicQuery() throws Exception {
         execAndCompDynamicQuery("src/test/resources/query/sql_dynamic", null, true);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c2fe3eb3/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
index 3fc649d..5f81f22 100644
--- a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
+++ b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
@@ -79,7 +79,6 @@ public class KylinTestBase {
 
     protected static final String resultTableName = "query result of ";
     protected static KylinConfig config = null;
-    protected static boolean distinctCountSupported = true;
     protected static Connection cubeConnection = null;
     protected static Connection h2Connection = null;
     protected static String joinType = "default";

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c2fe3eb3/query/src/test/resources/query/sql_invalid/query_count_distinct_on_dimension.sql
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/sql_invalid/query_count_distinct_on_dimension.sql b/query/src/test/resources/query/sql_invalid/query_count_distinct_on_dimension.sql
deleted file mode 100644
index 30bbd76..0000000
--- a/query/src/test/resources/query/sql_invalid/query_count_distinct_on_dimension.sql
+++ /dev/null
@@ -1 +0,0 @@
-select count(distinct cal_dt) from test_kylin_fact
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c2fe3eb3/query/src/test/resources/query/sql_invalid/query_count_distinct_on_dimension.sql.disabled
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/sql_invalid/query_count_distinct_on_dimension.sql.disabled b/query/src/test/resources/query/sql_invalid/query_count_distinct_on_dimension.sql.disabled
new file mode 100644
index 0000000..94f7faf
--- /dev/null
+++ b/query/src/test/resources/query/sql_invalid/query_count_distinct_on_dimension.sql.disabled
@@ -0,0 +1,2 @@
+##dd 
+select count(distinct cal_dt) from test_kylin_fact
\ No newline at end of file


[14/41] incubator-kylin git commit: KYLIN-608 hll works

Posted by li...@apache.org.
KYLIN-608 hll works


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

Branch: refs/heads/inverted-index
Commit: 579e793a16bff1c0a3cb5063051d8c0c8cbc0c19
Parents: 16b184d
Author: honma <ho...@ebay.com>
Authored: Thu Feb 12 17:09:51 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Thu Feb 12 17:39:23 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/util/BasicTest.java |  2 +
 .../invertedindex/index/TableRecordInfo.java    |  7 ++--
 .../kylin/invertedindex/model/IIDesc.java       | 40 ++++++++++++++------
 .../measure/fixedlen/FixedHLLCodec.java         |  2 +-
 .../measure/fixedlen/FixedLenMeasureCodec.java  |  8 ++--
 .../apache/kylin/metadata/model/DataType.java   |  1 +
 .../kylin/metadata/model/FunctionDesc.java      | 12 +++---
 .../AdjustForWeeklyMatchedRealization.java      |  8 ++--
 .../apache/kylin/query/test/IIQueryTest.java    |  9 ++++-
 .../resources/query/sql_fast_common/query00.sql |  5 +++
 .../kylin/storage/hbase/CubeStorageEngine.java  |  2 +-
 .../hbase/coprocessor/CoprocessorConstants.java |  2 +-
 .../endpoint/EndpointAggregators.java           | 25 +++++++-----
 .../endpoint/EndpointTupleIterator.java         | 22 ++++++++---
 14 files changed, 97 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java b/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
index 0a33f9f..59ed5f3 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
@@ -67,5 +67,7 @@ public class BasicTest {
     @Test
     @Ignore("fix it later")
     public void test2() throws IOException, ConfigurationException {
+        int m = 1 << 15;
+        System.out.println(m);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfo.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfo.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfo.java
index 886c649..7af3dcb 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfo.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfo.java
@@ -129,13 +129,12 @@ public class TableRecordInfo {
         return desc.findColumn(col);
     }
 
-    public int findMetric(String metricColumnName) {
-        if (metricColumnName == null)
+    public int findFactTableColumn(String columnName) {
+        if (columnName == null)
             return -1;
         for (int i = 0; i < allColumns.size(); ++i) {
             TblColRef tblColRef = allColumns.get(i);
-            if (measureSerializers[i] != null // has measureSerializers means it is a metric
-                    && tblColRef.isSameAs(desc.getFactTableName(), metricColumnName)) {
+            if (tblColRef.isSameAs(desc.getFactTableName(), columnName)) {
                 return i;
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
index 5bc611e..6e1224a 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
@@ -26,6 +26,7 @@ import java.util.HashSet;
 import java.util.List;
 
 import org.apache.commons.net.util.Base64;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;
 import org.apache.hadoop.hbase.util.Bytes;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
@@ -109,14 +110,18 @@ public class IIDesc extends RootPersistentEntity {
         IIDimension.capicalizeStrings(valueDimensions);
         StringUtil.toUpperCaseArray(metricNames, metricNames);
 
-        // retrieve all columns and all tables
+        // retrieve all columns and all tables, and make available measure to ii
         HashSet<String> allTableNames = Sets.newHashSet();
+        measureDescs = Lists.newArrayList();
+        measureDescs.add(makeCountMeasure());
         for (IIDimension iiDimension : Iterables.concat(bitmapDimensions, valueDimensions)) {
             TableDesc tableDesc = this.getTableDesc(iiDimension.getTable());
             for (String column : iiDimension.getColumns()) {
                 ColumnDesc columnDesc = tableDesc.findColumnByName(column);
                 allColumns.add(new TblColRef(columnDesc));
+                measureDescs.add(makeHLLMeasure(columnDesc, null));
             }
+
             if (!allTableNames.contains(tableDesc.getIdentity())) {
                 allTableNames.add(tableDesc.getIdentity());
                 allTables.add(tableDesc);
@@ -126,6 +131,9 @@ public class IIDesc extends RootPersistentEntity {
             TableDesc tableDesc = this.getTableDesc(this.getFactTableName());
             ColumnDesc columnDesc = tableDesc.findColumnByName(column);
             allColumns.add(new TblColRef(columnDesc));
+            measureDescs.add(makeNormalMeasure("SUM", columnDesc));
+            measureDescs.add(makeNormalMeasure("MIN", columnDesc));
+            measureDescs.add(makeNormalMeasure("MAX", columnDesc));
             if (!allTableNames.contains(tableDesc.getIdentity())) {
                 allTableNames.add(tableDesc.getIdentity());
                 allTables.add(tableDesc);
@@ -136,9 +144,7 @@ public class IIDesc extends RootPersistentEntity {
         bitmapCols = new int[IIDimension.getColumnCount(bitmapDimensions)];
         valueCols = new int[IIDimension.getColumnCount(valueDimensions)];
         metricsCols = new int[metricNames.length];
-
         metricsColSet = new BitSet(this.getTableDesc(this.getFactTableName()).getColumnCount());
-        measureDescs = Lists.newArrayList();
 
         int totalIndex = 0;
         for (int i = 0; i < bitmapCols.length; ++i, ++totalIndex) {
@@ -150,14 +156,7 @@ public class IIDesc extends RootPersistentEntity {
         for (int i = 0; i < metricsCols.length; ++i, ++totalIndex) {
             metricsCols[i] = totalIndex;
             metricsColSet.set(totalIndex);
-
-            ColumnDesc col = this.getTableDesc(this.getFactTableName()).findColumnByName(metricNames[i]);
-            measureDescs.add(makeMeasureDescs("SUM", col));
-            measureDescs.add(makeMeasureDescs("MIN", col));
-            measureDescs.add(makeMeasureDescs("MAX", col));
-            // TODO support for HLL
         }
-        measureDescs.add(makeCountMeasure());
 
         // partitioning column
         tsCol = -1;
@@ -197,7 +196,7 @@ public class IIDesc extends RootPersistentEntity {
         return functions;
     }
 
-    private MeasureDesc makeMeasureDescs(String func, ColumnDesc columnDesc) {
+    private MeasureDesc makeNormalMeasure(String func, ColumnDesc columnDesc) {
         String columnName = columnDesc.getName();
         String returnType = columnDesc.getTypeName();
         MeasureDesc measureDesc = new MeasureDesc();
@@ -213,6 +212,25 @@ public class IIDesc extends RootPersistentEntity {
         return measureDesc;
     }
 
+    /**
+     * 
+     * @param hllType represents the presision
+     */
+    private MeasureDesc makeHLLMeasure(ColumnDesc columnDesc, String hllType) {
+        String columnName = columnDesc.getName();
+        MeasureDesc measureDesc = new MeasureDesc();
+        FunctionDesc f1 = new FunctionDesc();
+        f1.setExpression("COUNT_DISTINCT");
+        ParameterDesc p1 = new ParameterDesc();
+        p1.setType("column");
+        p1.setValue(columnName);
+        p1.setColRefs(ImmutableList.of(new TblColRef(columnDesc)));
+        f1.setParameter(p1);
+        f1.setReturnType(hllType);
+        measureDesc.setFunction(f1);
+        return measureDesc;
+    }
+
     private MeasureDesc makeCountMeasure() {
         MeasureDesc measureDesc = new MeasureDesc();
         FunctionDesc f1 = new FunctionDesc();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedHLLCodec.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedHLLCodec.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedHLLCodec.java
index c6d4dc9..138940f 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedHLLCodec.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedHLLCodec.java
@@ -53,6 +53,6 @@ public class FixedHLLCodec extends FixedLenMeasureCodec<HyperLogLogPlusCounter>
 
     @Override
     public void write(HyperLogLogPlusCounter v, byte[] buf, int offset) {
-        current.writeRegistersArray(ByteBuffer.wrap(buf, offset, buf.length - offset));
+        v.writeRegistersArray(ByteBuffer.wrap(buf, offset, buf.length - offset));
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedLenMeasureCodec.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedLenMeasureCodec.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedLenMeasureCodec.java
index 650432a..ad8c483 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedLenMeasureCodec.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedLenMeasureCodec.java
@@ -20,11 +20,14 @@ package org.apache.kylin.metadata.measure.fixedlen;
 
 import org.apache.kylin.metadata.model.DataType;
 
-
 abstract public class FixedLenMeasureCodec<T> {
 
     public static FixedLenMeasureCodec<?> get(DataType type) {
-        return new FixedPointLongCodec(type);
+        if (type.isHLLC()) {
+            return new FixedHLLCodec(type);
+        } else {
+            return new FixedPointLongCodec(type);
+        }
     }
 
     abstract public int getLength();
@@ -33,7 +36,6 @@ abstract public class FixedLenMeasureCodec<T> {
 
     abstract public T valueOf(String value);
 
-
     abstract public Object getValue();
 
     abstract public T read(byte[] buf, int offset);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java b/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
index 70c24c9..a4e8db6 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
@@ -89,6 +89,7 @@ public class DataType {
 
     private static final ConcurrentMap<DataType, DataType> CACHE = new ConcurrentHashMap<DataType, DataType>();
 
+
     public static DataType getInstance(String type) {
         if (type == null)
             return null;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
index e80532c..eda31a1 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
@@ -48,7 +48,7 @@ public class FunctionDesc {
     private String returnType;
 
     private DataType returnDataType;
-    private boolean isAppliedOnDimension = false;
+    private boolean isDimensionAsMetric = false;
 
     public String getRewriteFieldName() {
         if (isSum()) {
@@ -62,7 +62,7 @@ public class FunctionDesc {
     }
 
     public boolean needRewrite() {
-        return !isSum() && !isHolisticCountDistinct() && !isAppliedOnDimension();
+        return !isSum() && !isHolisticCountDistinct() && !isDimensionAsMetric();
     }
 
     public boolean isMin() {
@@ -106,12 +106,12 @@ public class FunctionDesc {
         return sb.toString();
     }
 
-    public boolean isAppliedOnDimension() {
-        return isAppliedOnDimension;
+    public boolean isDimensionAsMetric() {
+        return isDimensionAsMetric;
     }
 
-    public void setAppliedOnDimension(boolean isAppliedOnDimension) {
-        this.isAppliedOnDimension = isAppliedOnDimension;
+    public void setDimensionAsMetric(boolean isDimensionAsMetric) {
+        this.isDimensionAsMetric = isDimensionAsMetric;
     }
 
     public String getExpression() {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
index 5f49ba4..7a36cf1 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
@@ -61,7 +61,7 @@ public class AdjustForWeeklyMatchedRealization extends RoutingRule {
     private static void adjustOLAPContextIfNecessary(IIInstance ii, OLAPContext olapContext) {
         IIDesc iiDesc = ii.getDescriptor();
         Collection<FunctionDesc> iiFuncs = iiDesc.listAllFunctions();
-        convertAggreationToDimension(olapContext, iiFuncs, iiDesc.getFactTableName());
+        convertAggregationToDimension(olapContext, iiFuncs, iiDesc.getFactTableName());
     }
 
     private static void adjustOLAPContextIfNecessary(CubeInstance cube, OLAPContext olapContext) {
@@ -70,17 +70,17 @@ public class AdjustForWeeklyMatchedRealization extends RoutingRule {
 
         CubeDesc cubeDesc = cube.getDescriptor();
         Collection<FunctionDesc> cubeFuncs = cubeDesc.listAllFunctions();
-        convertAggreationToDimension(olapContext, cubeFuncs, cubeDesc.getFactTable());
+        convertAggregationToDimension(olapContext, cubeFuncs, cubeDesc.getFactTable());
     }
 
-    private static void convertAggreationToDimension(OLAPContext olapContext, Collection<FunctionDesc> availableAggregations, String factTableName) {
+    private static void convertAggregationToDimension(OLAPContext olapContext, Collection<FunctionDesc> availableAggregations, String factTableName) {
         Iterator<FunctionDesc> it = olapContext.aggregations.iterator();
         while (it.hasNext()) {
             FunctionDesc functionDesc = it.next();
             if (!availableAggregations.contains(functionDesc)) {
                 // try to convert the metric to dimension to see if it works
                 TblColRef col = functionDesc.selectTblColRef(olapContext.metricsColumns, factTableName);
-                functionDesc.setAppliedOnDimension(true);
+                functionDesc.setDimensionAsMetric(true);
                 olapContext.rewriteFields.remove(functionDesc.getRewriteFieldName());
                 if (col != null) {
                     olapContext.metricsColumns.remove(col);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java b/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
index d37eac0..d36ffb9 100644
--- a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
@@ -37,7 +37,7 @@ public class IIQueryTest extends KylinQueryTest {
     public static void setUp() throws Exception {
 
         KylinQueryTest.setUp();//invoke super class
-        distinctCountSupported = false;
+        distinctCountSupported = true;
 
         Map<RealizationType, Integer> priorities = Maps.newHashMap();
         priorities.put(RealizationType.INVERTED_INDEX, 0);
@@ -64,10 +64,15 @@ public class IIQueryTest extends KylinQueryTest {
 
     @Test
     public void testSingleRunQuery() throws Exception {
-        String queryFileName = "src/test/resources/query/sql_ii/query04.sql";
+        String queryFileName = "src/test/resources/query/sql_distinct/query00.sql";
 
         File sqlFile = new File(queryFileName);
         runSQL(sqlFile, true, true);
         runSQL(sqlFile, true, false);
     }
+
+    @Test
+    public void testDistinctCountQuery() throws Exception {
+        super.testDistinctCountQuery();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/query/src/test/resources/query/sql_fast_common/query00.sql
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/sql_fast_common/query00.sql b/query/src/test/resources/query/sql_fast_common/query00.sql
new file mode 100644
index 0000000..198aea1
--- /dev/null
+++ b/query/src/test/resources/query/sql_fast_common/query00.sql
@@ -0,0 +1,5 @@
+select lstg_format_name, cal_dt,
+ sum(price) as GMV,
+ count(1) as TRANS_CNT
+ from test_kylin_fact
+ group by lstg_format_name, cal_dt
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
index 6eddd8d..a4ecc2a 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
@@ -136,7 +136,7 @@ public class CubeStorageEngine implements IStorageEngine {
     private void buildDimensionsAndMetrics(Collection<TblColRef> dimensions, Collection<FunctionDesc> metrics, SQLDigest sqlDigest) {
 
         for (FunctionDesc func : sqlDigest.aggregations) {
-            if (!func.isAppliedOnDimension()) {
+            if (!func.isDimensionAsMetric()) {
                 metrics.add(func);
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorConstants.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorConstants.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorConstants.java
index 40ba64a..7efb283 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorConstants.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorConstants.java
@@ -23,5 +23,5 @@ package org.apache.kylin.storage.hbase.coprocessor;
  */
 public class CoprocessorConstants {
     public static final int SERIALIZE_BUFFER_SIZE = 65536;
-    public static final int METRIC_SERIALIZE_BUFFER_SIZE = 1024;
+    public static final int METRIC_SERIALIZE_BUFFER_SIZE = 65536;
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregators.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregators.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregators.java
index 516c160..f8bf182 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregators.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregators.java
@@ -50,12 +50,12 @@ public class EndpointAggregators {
     private static class MetricInfo {
         private MetricType type;
         private int refIndex = -1;
-        private int presision = -1;
+        private int precision = -1;
 
         public MetricInfo(MetricType type, int refIndex, int presision) {
             this.type = type;
             this.refIndex = refIndex;
-            this.presision = presision;
+            this.precision = presision;
         }
 
         public MetricInfo(MetricType type, int refIndex) {
@@ -83,12 +83,12 @@ public class EndpointAggregators {
 
             if (functionDesc.isCount()) {
                 metricInfos[i] = new MetricInfo(MetricType.Count);
-            } else if (functionDesc.isAppliedOnDimension()) {
+            } else if (functionDesc.isDimensionAsMetric()) {
                 metricInfos[i] = new MetricInfo(MetricType.DimensionAsMetric);
             } else {
-                int index = tableInfo.findMetric(functionDesc.getParameter().getValue());
+                int index = tableInfo.findFactTableColumn(functionDesc.getParameter().getValue());
                 if (index < 0) {
-                    throw new IllegalStateException("Column " + functionDesc.getParameter().getColRefs().get(0) + " is not found in II");
+                    throw new IllegalStateException("Column " + functionDesc.getParameter().getValue() + " is not found in II");
                 }
 
                 if (functionDesc.isCountDistinct()) {
@@ -141,9 +141,13 @@ public class EndpointAggregators {
 
     public MeasureAggregator[] createBuffer() {
         MeasureAggregator[] aggrs = new MeasureAggregator[funcNames.length];
-        for (int j = 0; j < aggrs.length; j++) {
-            //all fixed length measures can be aggregated as long
-            aggrs[j] = MeasureAggregator.create(funcNames[j], "long");
+        for (int i = 0; i < aggrs.length; i++) {
+            if (metricInfos[i].type == MetricType.DistinctCount) {
+                aggrs[i] = MeasureAggregator.create(funcNames[i], dataTypes[i]);
+            } else {
+                //all other fixed length measures can be aggregated as long
+                aggrs[i] = MeasureAggregator.create(funcNames[i], "long");
+            }
         }
         return aggrs;
     }
@@ -179,7 +183,8 @@ public class EndpointAggregators {
                 //TODO: for unified dictionary, this is okay. but if different data blocks uses different dictionary, we'll have to aggregate original data
                 HyperLogLogPlusCounter hllc = hllcs[metricIndex];
                 if (hllc == null) {
-                    hllc = new HyperLogLogPlusCounter(metricInfo.presision);
+                    int precision = metricInfo.precision;
+                    hllc = new HyperLogLogPlusCounter(precision);
                 }
                 hllc.clear();
                 hllc.add(byteBuffer.get(), byteBuffer.getOffset(), byteBuffer.getLength());
@@ -244,7 +249,7 @@ public class EndpointAggregators {
                 MetricInfo metricInfo = value.metricInfos[i];
                 BytesUtil.writeAsciiString(metricInfo.type.toString(), out);
                 BytesUtil.writeVInt(metricInfo.refIndex, out);
-                BytesUtil.writeVInt(metricInfo.presision, out);
+                BytesUtil.writeVInt(metricInfo.precision, out);
             }
 
             BytesUtil.writeByteArray(TableRecordInfoDigest.serialize(value.tableRecordInfoDigest), out);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/579e793a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
index 465f7f3..5bf22e7 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
@@ -54,6 +54,8 @@ import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
 import org.apache.kylin.metadata.tuple.ITuple;
 import org.apache.kylin.metadata.tuple.ITupleIterator;
 
+import javax.xml.datatype.DatatypeConfigurationException;
+
 /**
  * Created by Hongbin Ma(Binmahone) on 12/2/14.
  */
@@ -99,7 +101,9 @@ public class EndpointTupleIterator implements ITupleIterator {
         if (measures == null) {
             measures = Lists.newArrayList();
         }
-        initMeaureParameters(measures, segment.getColumns());
+
+        //this method will change measures
+        rewriteMeasureParameters(measures, segment.getColumns());
 
         this.seg = segment;
         this.context = context;
@@ -137,7 +141,7 @@ public class EndpointTupleIterator implements ITupleIterator {
      * @param measures
      * @param columns
      */
-    private void initMeaureParameters(List<FunctionDesc> measures, List<TblColRef> columns) {
+    private void rewriteMeasureParameters(List<FunctionDesc> measures, List<TblColRef> columns) {
         for (FunctionDesc functionDesc : measures) {
             if (functionDesc.isCount()) {
                 functionDesc.setReturnType("bigint");
@@ -146,8 +150,15 @@ public class EndpointTupleIterator implements ITupleIterator {
                 boolean updated = false;
                 for (TblColRef column : columns) {
                     if (column.isSameAs(factTableName, functionDesc.getParameter().getValue())) {
-                        functionDesc.setReturnType(column.getColumn().getType().toString());
-                        functionDesc.setReturnDataType(DataType.getInstance(functionDesc.getReturnType()));
+                        if (functionDesc.isCountDistinct()) {
+                            //TODO: default precision might need be configurable
+                            String iiDefaultHLLC = "hllc10";
+                            functionDesc.setReturnType(iiDefaultHLLC);
+                            functionDesc.setReturnDataType(DataType.getInstance(iiDefaultHLLC));
+                        } else {
+                            functionDesc.setReturnType(column.getColumn().getType().toString());
+                            functionDesc.setReturnDataType(DataType.getInstance(functionDesc.getReturnType()));
+                        }
                         functionDesc.getParameter().setColRefs(ImmutableList.of(column));
                         updated = true;
                         break;
@@ -292,6 +303,7 @@ public class EndpointTupleIterator implements ITupleIterator {
             this.tableRecord.setBytes(columnsBytes, 0, columnsBytes.length);
             if (currentRow.hasMeasures()) {
                 byte[] measuresBytes = currentRow.getMeasures().toByteArray();
+
                 this.measureValues = pushedDownAggregators.deserializeMetricValues(measuresBytes, 0);
             }
 
@@ -318,7 +330,7 @@ public class EndpointTupleIterator implements ITupleIterator {
 
             if (measureValues != null) {
                 for (int i = 0; i < measures.size(); ++i) {
-                    if (!measures.get(i).isAppliedOnDimension()) {
+                    if (!measures.get(i).isDimensionAsMetric()) {
                         String fieldName = measures.get(i).getRewriteFieldName();
                         Object value = measureValues.get(i);
                         String dataType = tuple.getDataType(fieldName);


[28/41] incubator-kylin git commit: add user defined config for kylin.job.yarn.app.rest.check.status.url

Posted by li...@apache.org.
add user defined config for kylin.job.yarn.app.rest.check.status.url


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

Branch: refs/heads/inverted-index
Commit: 2e7a7109a6e5d79748eafbccf13de1c92b35853f
Parents: eb4ea7d
Author: qianhao.zhou <qi...@ebay.com>
Authored: Fri Feb 13 18:19:17 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Fri Feb 13 18:19:17 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    |  8 +++--
 .../kylin/job/common/MapReduceExecutable.java   | 36 ++++++++++++++------
 2 files changed, 31 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/2e7a7109/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
index 1a94bff..5656fd3 100644
--- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -59,6 +59,8 @@ public class KylinConfig {
 
     public static final String KYLIN_JOB_CONCURRENT_MAX_LIMIT = "kylin.job.concurrent.max.limit";
 
+    public static final String KYLIN_JOB_YARN_APP_REST_CHECK_URL = "kylin.job.yarn.app.rest.check.status.url";
+
     public static final String KYLIN_JOB_YARN_APP_REST_CHECK_INTERVAL_SECONDS = "kylin.job.yarn.app.rest.check.interval.seconds";
 
     public static final String KYLIN_TMP_HDFS_DIR = "kylin.tmp.hdfs.dir";
@@ -389,9 +391,9 @@ public class KylinConfig {
         return getOptional(KYLIN_TMP_HDFS_DIR, "/tmp/kylin");
     }
 
-    //    public String getYarnStatusServiceUrl() {
-    //        return getOptional(KYLIN_JOB_YARN_APP_REST_CHECK_STATUS_URL, null);
-    //    }
+    public String getYarnStatusCheckUrl() {
+        return getOptional(KYLIN_JOB_YARN_APP_REST_CHECK_URL, null);
+    }
 
     public int getYarnStatusCheckIntervalSeconds() {
         return Integer.parseInt(getOptional(KYLIN_JOB_YARN_APP_REST_CHECK_INTERVAL_SECONDS, "60"));

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/2e7a7109/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java b/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
index 20791a0..1ea1620 100644
--- a/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
@@ -20,6 +20,7 @@ package org.apache.kylin.job.common;
 
 import com.google.common.base.Preconditions;
 import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.constant.ExecutableConstants;
 import org.apache.kylin.job.constant.JobStepStatusEnum;
 import org.apache.kylin.job.exception.ExecuteException;
@@ -117,17 +118,12 @@ public class MapReduceExecutable extends AbstractExecutable {
             }
             final StringBuilder output = new StringBuilder();
             final HadoopCmdOutput hadoopCmdOutput = new HadoopCmdOutput(job, output);
-            String rmWebHost = job.getConfiguration().get("yarn.resourcemanager.webapp.address");
-            if (StringUtils.isEmpty(rmWebHost)) {
-                return new ExecuteResult(ExecuteResult.State.ERROR, "yarn.resourcemanager.webapp.address is empty");
-            }
-            if (rmWebHost.startsWith("http://") || rmWebHost.startsWith("https://")) {
-                //do nothing
-            } else {
-                rmWebHost = "http://" + rmWebHost;
+
+            final String restStatusCheckUrl = getRestStatusCheckUrl(job, context.getConfig());
+            if (restStatusCheckUrl == null) {
+                logger.error("restStatusCheckUrl is null");
+                return new ExecuteResult(ExecuteResult.State.ERROR, "restStatusCheckUrl is null");
             }
-            logger.info("yarn.resourcemanager.webapp.address:" + rmWebHost);
-            final String restStatusCheckUrl = rmWebHost + "/ws/v1/cluster/apps/${job_id}?anonymous=true";
             String mrJobId = hadoopCmdOutput.getMrJobId();
             HadoopStatusChecker statusChecker = new HadoopStatusChecker(restStatusCheckUrl, mrJobId, output);
             JobStepStatusEnum status = JobStepStatusEnum.NEW;
@@ -168,6 +164,26 @@ public class MapReduceExecutable extends AbstractExecutable {
         }
     }
 
+    private String getRestStatusCheckUrl(Job job, KylinConfig config) {
+        final String yarnStatusCheckUrl = config.getYarnStatusCheckUrl();
+        if (yarnStatusCheckUrl != null) {
+            return yarnStatusCheckUrl;
+        } else {
+            logger.info(KylinConfig.KYLIN_JOB_YARN_APP_REST_CHECK_URL + " is not set, read from job configuration");
+        }
+        String rmWebHost = job.getConfiguration().get("yarn.resourcemanager.webapp.address");
+        if (StringUtils.isEmpty(rmWebHost)) {
+            return null;
+        }
+        if (rmWebHost.startsWith("http://") || rmWebHost.startsWith("https://")) {
+            //do nothing
+        } else {
+            rmWebHost = "http://" + rmWebHost;
+        }
+        logger.info("yarn.resourcemanager.webapp.address:" + rmWebHost);
+        return rmWebHost + "/ws/v1/cluster/apps/${job_id}?anonymous=true";
+    }
+
     public long getMapReduceWaitTime() {
         return getExtraInfoAsLong(MAP_REDUCE_WAIT_TIME, 0L);
     }


[26/41] incubator-kylin git commit: fix script

Posted by li...@apache.org.
fix script


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

Branch: refs/heads/inverted-index
Commit: 301388e95c13fc0f1e75444561d8c6c6a6392f34
Parents: 093ce7e
Author: qianhao.zhou <qi...@ebay.com>
Authored: Fri Feb 13 15:04:55 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Fri Feb 13 15:04:55 2015 +0800

----------------------------------------------------------------------
 script/package.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/301388e9/script/package.sh
----------------------------------------------------------------------
diff --git a/script/package.sh b/script/package.sh
index 556467a..ce1a173 100755
--- a/script/package.sh
+++ b/script/package.sh
@@ -26,8 +26,8 @@ version=`mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpress
 echo "kylin version: ${version}"
 export version
 
-sh ${dir}/download-tomcat.sh || { exit 1; }
-sh ${dir}/build.sh || { exit 1; }
-sh ${dir}/prepare.sh || { exit 1; }
-sh ${dir}/compress.sh || { exit 1; }
+sh script/download-tomcat.sh || { exit 1; }
+sh script/build.sh || { exit 1; }
+sh script/prepare.sh || { exit 1; }
+sh script/compress.sh || { exit 1; }
 


[29/41] incubator-kylin git commit: Fix failed Unit test on mini cluster

Posted by li...@apache.org.
Fix failed Unit test on mini cluster

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

Branch: refs/heads/inverted-index
Commit: e5970b16f7c0c960bb2de6c951c7e9aab1975cc2
Parents: eb4ea7d
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Sun Feb 15 18:01:29 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Sun Feb 15 18:01:29 2015 +0800

----------------------------------------------------------------------
 .../src/main/java/org/apache/kylin/dict/DictionaryManager.java   | 1 +
 .../org/apache/kylin/job/impl/threadpool/DefaultScheduler.java   | 2 +-
 .../org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java  | 4 ++--
 pom.xml                                                          | 1 +
 .../src/test/java/org/apache/kylin/query/test/KylinTestBase.java | 4 ++--
 5 files changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e5970b16/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java b/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
index e240efd..d61c4fa 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
@@ -341,6 +341,7 @@ public class DictionaryManager {
     DictionaryInfo load(String resourcePath, boolean loadDictObj) throws IOException {
         ResourceStore store = MetadataManager.getInstance(config).getStore();
 
+        logger.debug("Going to load DictionaryInfo from " + resourcePath);
         DictionaryInfo info = store.getResource(resourcePath, DictionaryInfo.class, loadDictObj ? DictionaryInfoSerializer.FULL_SERIALIZER : DictionaryInfoSerializer.INFO_SERIALIZER);
 
         if (loadDictObj)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e5970b16/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
index 7d87c93..b486a3e 100644
--- a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
+++ b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
@@ -160,7 +160,7 @@ public class DefaultScheduler implements Scheduler<AbstractExecutable>, Connecti
 
     private String getZKConnectString(JobEngineConfig context) {
         Configuration conf = HadoopUtil.newHBaseConfiguration(context.getConfig().getStorageUrl());
-        return conf.get(HConstants.ZOOKEEPER_QUORUM);
+        return conf.get(HConstants.ZOOKEEPER_QUORUM) + ":" + conf.get(HConstants.ZOOKEEPER_CLIENT_PORT);
     }
 
     public static DefaultScheduler getInstance() {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e5970b16/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java b/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
index 61b8984..9da0f73 100644
--- a/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
@@ -19,7 +19,7 @@
 package org.apache.kylin.job.impl.threadpool;
 
 import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.job.constant.ExecutableConstants;
 import org.apache.kylin.job.engine.JobEngineConfig;
 import org.apache.kylin.job.execution.AbstractExecutable;
@@ -34,7 +34,7 @@ import java.lang.reflect.Modifier;
 /**
  * Created by qianzhou on 12/26/14.
  */
-public abstract class BaseSchedulerTest extends LocalFileMetadataTestCase {
+public abstract class BaseSchedulerTest extends HBaseMetadataTestCase {
 
     private DefaultScheduler scheduler;
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e5970b16/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 0a85ba2..af38a71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -576,6 +576,7 @@
                                 <exclude>**/KylinQueryTest.java</exclude>
                                 <exclue>**/SnapshotManagerTest.java</exclue>
                                 <exclue>**/HiveTableReaderTest.java</exclue>
+                                <exclude>**/TableControllerTest.java</exclude>
                             </excludes>
                             <systemProperties>
                                 <property>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e5970b16/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
index 5f81f22..55699d3 100644
--- a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
+++ b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
@@ -209,7 +209,7 @@ public class KylinTestBase {
         if (needSort) {
             queryTable = new SortedTable(queryTable, columnNames);
         }
-        printResult(queryTable);
+        // printResult(queryTable);
 
         return queryTable;
     }
@@ -265,7 +265,7 @@ public class KylinTestBase {
         if (needSort) {
             queryTable = new SortedTable(queryTable, columnNames);
         }
-        printResult(queryTable);
+        // printResult(queryTable);
         return queryTable;
     }
 


[07/41] incubator-kylin git commit: minor changes

Posted by li...@apache.org.
minor changes


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

Branch: refs/heads/inverted-index
Commit: ac8ec34557c917739db9fc29af39c290eef3e987
Parents: 26c8d81
Author: lukehan <lu...@apache.org>
Authored: Thu Feb 12 15:42:33 2015 +0800
Committer: lukehan <lu...@apache.org>
Committed: Thu Feb 12 15:42:33 2015 +0800

----------------------------------------------------------------------
 jdbc/pom.xml              | 1 +
 script/build.sh           | 0
 script/compress.sh        | 0
 script/download-tomcat.sh | 0
 script/package.sh         | 0
 script/prepare.sh         | 0
 6 files changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac8ec345/jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index 606e340..2c8a290 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -21,6 +21,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<artifactId>kylin-jdbc</artifactId>
 	<packaging>jar</packaging>
+	<name>Kylin:JDBC</name>
 
 	<parent>
 		<groupId>org.apache.kylin</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac8ec345/script/build.sh
----------------------------------------------------------------------
diff --git a/script/build.sh b/script/build.sh
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac8ec345/script/compress.sh
----------------------------------------------------------------------
diff --git a/script/compress.sh b/script/compress.sh
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac8ec345/script/download-tomcat.sh
----------------------------------------------------------------------
diff --git a/script/download-tomcat.sh b/script/download-tomcat.sh
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac8ec345/script/package.sh
----------------------------------------------------------------------
diff --git a/script/package.sh b/script/package.sh
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac8ec345/script/prepare.sh
----------------------------------------------------------------------
diff --git a/script/prepare.sh b/script/prepare.sh
old mode 100644
new mode 100755


[24/41] incubator-kylin git commit: fix script

Posted by li...@apache.org.
fix script


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

Branch: refs/heads/inverted-index
Commit: 093ce7edffe18463ae4ffc55acb060955a0cf8c3
Parents: 21e7820
Author: qianhao.zhou <qi...@ebay.com>
Authored: Fri Feb 13 14:55:14 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Fri Feb 13 14:55:14 2015 +0800

----------------------------------------------------------------------
 bin/find-hive-dependency.sh | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/093ce7ed/bin/find-hive-dependency.sh
----------------------------------------------------------------------
diff --git a/bin/find-hive-dependency.sh b/bin/find-hive-dependency.sh
index 44496c5..4ae1a26 100644
--- a/bin/find-hive-dependency.sh
+++ b/bin/find-hive-dependency.sh
@@ -7,7 +7,7 @@ arr=(`echo $hive_classpath | cut -d ":"  --output-delimiter=" " -f 1-`)
 hive_exec_path=
 for data in ${arr[@]}
 do
-    result=`echo $data | grep -e 'hive-exec-[0-9\.-]*jar'`
+    result=`echo $data | grep -e 'hive-exec[0-9\.-]*jar'`
     if [ $result ]
     then
         hive_exec_path=$data
@@ -15,20 +15,11 @@ do
 done
 hdp_home=`echo $hive_exec_path | awk -F '/hive/lib/' '{print $1}'`
 
-hive_dependency=/usr/hdp/current/hive-client/conf/:${hdp_home}/hive/lib/*
+hive_dependency=${hdp_home}/hive/conf:${hdp_home}/hive/lib/*
 
-hcatalog=""
-if [ -d "${hdp_home}/hive-hcatalog/share/hcatalog/" ]
-then
-    hcatalog="${hdp_home}/hive-hcatalog/share/hcatalog/*"
-else
-    if [ -d "${hdp_home}/hcatalog/share/hcatalog/" ]
-    then
-        hcatalog="${hdp_home}/hcatalog/share/hcatalog/*"
-    fi
-fi
+hcatalog=`find $hdp_home -name "hive-hcatalog-core[0-9\.-]*jar" 2>&1 | grep -m 1 -v 'Permission denied'`
 
-if [ hcatalog = "" ]
+if [ -z "$hcatalog" ]
 then
     echo "hcatalog lib not found"
     exit 1


[30/41] incubator-kylin git commit: Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index

Posted by li...@apache.org.
Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index


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

Branch: refs/heads/inverted-index
Commit: 270b56ac6cfe8d938329b1e70f378bf2e70f9a9e
Parents: e5970b1 2e7a710
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Sun Feb 15 18:01:51 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Sun Feb 15 18:01:51 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    |  8 +++--
 .../kylin/job/common/MapReduceExecutable.java   | 36 ++++++++++++++------
 2 files changed, 31 insertions(+), 13 deletions(-)
----------------------------------------------------------------------



[33/41] incubator-kylin git commit: fix ii cube save bug

Posted by li...@apache.org.
fix ii cube save bug


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

Branch: refs/heads/inverted-index
Commit: 6255da9e023cad827d2d029b1181805430f89fcc
Parents: 11ee3b3
Author: jiazhong <ji...@ebay.com>
Authored: Thu Feb 26 23:27:58 2015 +0800
Committer: jiazhong <ji...@ebay.com>
Committed: Thu Feb 26 23:27:58 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/cubeEdit.js             | 17 ++++++-----------
 webapp/app/js/controllers/cubeSchema.js           |  2 +-
 webapp/app/partials/cubeDesigner/incremental.html |  2 +-
 webapp/app/partials/cubeDesigner/measures.html    |  2 +-
 4 files changed, 9 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6255da9e/webapp/app/js/controllers/cubeEdit.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js
old mode 100644
new mode 100755
index 6518360..c2f0b5a
--- a/webapp/app/js/controllers/cubeEdit.js
+++ b/webapp/app/js/controllers/cubeEdit.js
@@ -108,17 +108,6 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
         // generate column family
         generateColumnFamily();
 
-        // Clean up objects used in cube creation
-//        angular.forEach($scope.cubeMetaFrame.dimensions, function (dimension, index) {
-//            delete dimension.status;
-//
-//            for (var key in dimension) {
-//                if (dimension.hasOwnProperty(key) && !dimension[key]) {
-//                    delete dimension[key];
-//                }
-//            }
-//        });
-
 
         if ($scope.metaModel.model.partition_desc.partition_date_column&&($scope.metaModel.model.partition_desc.partition_date_start|$scope.metaModel.model.partition_desc.partition_date_start==0)) {
             var dateStart = new Date($scope.metaModel.model.partition_desc.partition_date_start);
@@ -132,6 +121,12 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
             }
 
         }
+        //use cubedesc name as model name
+        if($scope.metaModel.model.name===""||angular.isUndefined($scope.metaModel.model.name)){
+            $scope.metaModel.model.name = $scope.cubeMetaFrame.name;
+        }
+
+        //set model ref for cubeDesc
         if($scope.cubeMetaFrame.model_name===""||angular.isUndefined($scope.cubeMetaFrame.model_name)){
             $scope.cubeMetaFrame.model_name = $scope.cubeMetaFrame.name;
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6255da9e/webapp/app/js/controllers/cubeSchema.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeSchema.js b/webapp/app/js/controllers/cubeSchema.js
index b4c9dfc..e03808c 100644
--- a/webapp/app/js/controllers/cubeSchema.js
+++ b/webapp/app/js/controllers/cubeSchema.js
@@ -18,7 +18,7 @@
 
 'use strict';
 
-KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserService, ProjectService, AuthenticationService,$filter,ModelService,MetaModel) {
+KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserService, ProjectService, AuthenticationService,$filter,ModelService,MetaModel,CubeDescModel) {
 
     $scope.projects = [];
     $scope.newDimension = null;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6255da9e/webapp/app/partials/cubeDesigner/incremental.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubeDesigner/incremental.html b/webapp/app/partials/cubeDesigner/incremental.html
old mode 100644
new mode 100755
index b3a6b1e..496cc36
--- a/webapp/app/partials/cubeDesigner/incremental.html
+++ b/webapp/app/partials/cubeDesigner/incremental.html
@@ -65,7 +65,7 @@
                            ng-model="metaModel.model.partition_desc.partition_date_start" ng-if="state.mode=='edit'"
                            placeholder="Click to choose start date..." is-open="opened" />
                     <span ng-if="state.mode=='view'">{{
-                        (metaModel.model.partition_desc.partition_date_start|reverseToGMT0) }}</span>
+                        (metaModel.model.partition_desc.partition_date_start)|date:'yyyy-MM-dd HH:mm:ss' }}</span>
                 </div>
             </div>
         </div>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6255da9e/webapp/app/partials/cubeDesigner/measures.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubeDesigner/measures.html b/webapp/app/partials/cubeDesigner/measures.html
old mode 100644
new mode 100755
index 7e19167..ef7c12f
--- a/webapp/app/partials/cubeDesigner/measures.html
+++ b/webapp/app/partials/cubeDesigner/measures.html
@@ -146,7 +146,7 @@
                                 <select class="form-control" chosen
                                     ng-if="newMeasure.function.parameter.type == 'column'"
                                     ng-model="newMeasure.function.parameter.value"
-                                    ng-options="columns.name as columns.name for columns in getColumnsByTable(cubeMetaFrame.fact_table)" >
+                                    ng-options="columns.name as columns.name for columns in getColumnsByTable(metaModel.model.fact_table)" >
                                     <option value="">-- Select a Fact Table Column --</option>
                                 </select>
                             </div>


[37/41] incubator-kylin git commit: fix joblist bug & jira:KYLIN-593

Posted by li...@apache.org.
fix joblist bug & jira:KYLIN-593


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

Branch: refs/heads/inverted-index
Commit: 2b01dcc4b8410565d55019c17739a91041719a88
Parents: c084848
Author: jiazhong <ji...@ebay.com>
Authored: Fri Feb 27 11:03:07 2015 +0800
Committer: jiazhong <ji...@ebay.com>
Committed: Fri Feb 27 11:03:07 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/model/cubeListModel.js | 0
 webapp/app/js/model/jobListModel.js  | 2 +-
 webapp/grunt.json                    | 4 ++--
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/2b01dcc4/webapp/app/js/model/cubeListModel.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/model/cubeListModel.js b/webapp/app/js/model/cubeListModel.js
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/2b01dcc4/webapp/app/js/model/jobListModel.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/model/jobListModel.js b/webapp/app/js/model/jobListModel.js
old mode 100644
new mode 100755
index 53f5e9a..166e4e4
--- a/webapp/app/js/model/jobListModel.js
+++ b/webapp/app/js/model/jobListModel.js
@@ -17,8 +17,8 @@
 */
 
 KylinApp.service('JobList',function(JobService,$q){
-    var jobs=[];
     var _this = this;
+    this.jobs=[];
 
     this.list = function(jobRequest){
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/2b01dcc4/webapp/grunt.json
----------------------------------------------------------------------
diff --git a/webapp/grunt.json b/webapp/grunt.json
old mode 100644
new mode 100755
index aeb1da4..f326df4
--- a/webapp/grunt.json
+++ b/webapp/grunt.json
@@ -10,10 +10,10 @@
             "src": [
                 "app/components/jquery/dist/jquery.min.js",
                 "app/components/bootstrap/dist/js/bootstrap.min.js",
-                "app/components/angular/angular.min.js",
+                "app/components/angular/angular.js",
                 "app/components/angular-animate/angular-animate.min.js",
                 "app/components/angular-route/angular-route.min.js",
-                "app/components/angular-resource/angular-resource.min.js",
+                "app/components/angular-resource/angular-resource.js",
                 "app/components/angular-bootstrap/ui-bootstrap-tpls.min.js",
                 "app/components/angular-cookies/angular-cookies.js",
                 "app/components/angularLocalStorage/src/angularLocalStorage.js",


[21/41] incubator-kylin git commit: fix script

Posted by li...@apache.org.
fix script


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

Branch: refs/heads/inverted-index
Commit: c130f7c0282f6699d64ceef2df1171bf09cabefe
Parents: 16b184d
Author: qianhao.zhou <qi...@ebay.com>
Authored: Fri Feb 13 11:49:12 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Fri Feb 13 11:49:12 2015 +0800

----------------------------------------------------------------------
 bin/find-hive-dependency.sh | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c130f7c0/bin/find-hive-dependency.sh
----------------------------------------------------------------------
diff --git a/bin/find-hive-dependency.sh b/bin/find-hive-dependency.sh
index 7bd5f43..44496c5 100644
--- a/bin/find-hive-dependency.sh
+++ b/bin/find-hive-dependency.sh
@@ -7,7 +7,7 @@ arr=(`echo $hive_classpath | cut -d ":"  --output-delimiter=" " -f 1-`)
 hive_exec_path=
 for data in ${arr[@]}
 do
-    result=`echo $data | grep 'hive-exec.jar'`
+    result=`echo $data | grep -e 'hive-exec-[0-9\.-]*jar'`
     if [ $result ]
     then
         hive_exec_path=$data
@@ -15,6 +15,25 @@ do
 done
 hdp_home=`echo $hive_exec_path | awk -F '/hive/lib/' '{print $1}'`
 
-hive_dependency=/usr/hdp/current/hive-client/conf/:${hdp_home}/hive/lib/*:${hdp_home}/hive-hcatalog/share/hcatalog/*
+hive_dependency=/usr/hdp/current/hive-client/conf/:${hdp_home}/hive/lib/*
+
+hcatalog=""
+if [ -d "${hdp_home}/hive-hcatalog/share/hcatalog/" ]
+then
+    hcatalog="${hdp_home}/hive-hcatalog/share/hcatalog/*"
+else
+    if [ -d "${hdp_home}/hcatalog/share/hcatalog/" ]
+    then
+        hcatalog="${hdp_home}/hcatalog/share/hcatalog/*"
+    fi
+fi
+
+if [ hcatalog = "" ]
+then
+    echo "hcatalog lib not found"
+    exit 1
+fi
+
+hive_dependency=${hive_dependency}:${hcatalog}
 echo "hive dependency: $hive_dependency"
 export hive_dependency
\ No newline at end of file


[02/41] incubator-kylin git commit: Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index

Posted by li...@apache.org.
Merge branch 'inverted-index' of https://github.com/KylinOLAP/Kylin into inverted-index


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

Branch: refs/heads/inverted-index
Commit: efc76d6b208ee789cab5a8e296a3ccf23bbcd28f
Parents: 47ab1d6 ed729ee
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Thu Feb 12 14:25:55 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Thu Feb 12 14:25:55 2015 +0800

----------------------------------------------------------------------
 .gitignore                                      |   0
 bin/check-env.sh                                |   0
 bin/health-check.sh                             |  33 ++
 bin/healthmon.sh                                |  33 --
 bin/start-kylin.sh                              |   0
 bin/stop-kylin.sh                               |   0
 .../org/apache/kylin/common/KylinConfig.java    |   3 +-
 .../common/hll/HyperLogLogPlusCounter.java      | 567 ++++++++++---------
 .../org/apache/kylin/common/util/BasicTest.java |  23 +-
 .../common/util/HBaseMiniclusterHelper.java     |   2 -
 .../common/util/HyperLogLogCounterTest.java     |  12 +
 conf/kylin.properties                           |   8 +-
 docs/Installation/install_and_run.md            |  69 +++
 docs/website/_includes/footer.html              |  14 +-
 docs/website/_includes/head.cn.html             |  42 ++
 docs/website/_includes/header.cn.html           |  39 ++
 docs/website/_includes/header.html              |  21 +-
 docs/website/_layouts/default-cn.html           |  23 +
 docs/website/_layouts/post.html                 |  11 +-
 .../_posts/2015-01-25-introduce-data-model.md   |  40 ++
 docs/website/about/index.md                     |  77 +--
 docs/website/assets/css/styles.css              |  32 +-
 docs/website/blog/index.html                    |  21 +-
 docs/website/community/index.html               |   8 +-
 docs/website/css/main.scss                      |  52 ++
 docs/website/docs/index.html                    |   2 -
 docs/website/index.cn.md                        |  91 +++
 docs/website/index.md                           |  91 +++
 .../test_case_data/localmeta/kylin.properties   |   6 -
 .../localmeta_v1/kylin.properties               |   6 -
 .../minicluster/b-kylin/kylin.properties        |   6 -
 .../minicluster/b-kylin/meta/kylin.properties   |   6 -
 .../test_case_data/minicluster/kylin.properties |   6 -
 .../sandbox-hdp21/kylin.properties              |   6 -
 .../test_case_data/sandbox/kylin.properties     |   6 -
 .../invertedindex/index/RawTableRecord.java     |  20 +-
 .../apache/kylin/invertedindex/index/Slice.java | 330 ++++++-----
 .../kylin/invertedindex/index/TableRecord.java  |  12 +-
 .../invertedindex/index/TableRecordInfo.java    |   3 +-
 .../kylin/metadata/measure/HLLCSerializer.java  |   2 +-
 .../measure/fixedlen/FixedHLLCodec.java         |  58 ++
 .../measure/fixedlen/FixedLenMeasureCodec.java  |   4 +-
 .../measure/fixedlen/FixedPointLongCodec.java   |   6 +-
 script/build.sh                                 |  12 +-
 script/compress.sh                              |   4 +-
 script/package.sh                               |   0
 script/prepare.sh                               |   6 +-
 server/ServiceConfig.md                         |   4 +-
 .../endpoint/EndpointAggregators.java           | 161 ++++--
 .../endpoint/EndpointTupleIterator.java         |  18 +-
 .../hbase/coprocessor/endpoint/IIEndpoint.java  |   2 +-
 .../org/apache/kylin/storage/tuple/Tuple.java   |  12 +-
 webapp/app/css/AdminLTE-fonts.css               |   0
 webapp/app/css/AdminLTE.css                     |   0
 ...1aHBYDBqgeIAH2zlPytCVloACqnDHJwh-em2k8.woff2 | Bin
 ...t5NIMarvNW-hkYWvT3rGVtsTkPsbDajuO5ueQw.woff2 | Bin
 webapp/app/index.html                           |   2 +
 webapp/app/js/controllers/cubeAdvanceSetting.js |   0
 webapp/app/js/controllers/cubeDimensions.js     |   0
 webapp/app/js/controllers/cubeEdit.js           |   0
 webapp/app/js/controllers/cubeFilter.js         |   0
 webapp/app/js/controllers/cubeModel.js          |   0
 webapp/app/js/controllers/cubeRefresh.js        |   0
 webapp/app/js/controllers/cubeSchema.js         |   0
 webapp/app/js/controllers/cubes.js              |  51 +-
 webapp/app/js/controllers/job.js                |  41 +-
 webapp/app/js/controllers/page.js               |   0
 webapp/app/js/controllers/projects.js           |   0
 webapp/app/js/controllers/sourceMeta.js         |   0
 webapp/app/js/filters/filter.js                 |   0
 webapp/app/js/model/cubeConfig.js               |   0
 webapp/app/js/model/cubeListModel.js            |  65 +++
 webapp/app/js/model/cubesManager.js             |   0
 webapp/app/js/model/jobConfig.js                |   0
 webapp/app/js/model/jobListModel.js             |  61 ++
 webapp/app/js/model/metaModel.js                |   0
 webapp/app/js/model/projectConfig.js            |   0
 webapp/app/js/model/projectModel.js             |   0
 webapp/app/js/model/tableConfig.js              |   0
 webapp/app/js/model/tableModel.js               |   0
 webapp/app/partials/common/access.html          |   8 +-
 .../cubeDesigner/advanced_settings.html         |   3 +
 .../app/partials/cubeDesigner/data_model.html   |   1 +
 .../app/partials/cubeDesigner/dimensions.html   |   3 +
 .../app/partials/cubeDesigner/incremental.html  |   1 +
 webapp/app/partials/cubeDesigner/measures.html  |   2 +
 webapp/app/partials/cubes/cube_json_edit.html   |   0
 webapp/app/partials/cubes/cubes.html            |  14 +-
 webapp/app/partials/jobs/job_submit.html        |   1 -
 webapp/app/partials/jobs/jobs.html              |  14 +-
 webapp/app/partials/projects/projects.html      |   0
 webapp/app/partials/tables/source_metadata.html |   0
 webapp/bower.json                               |   0
 webapp/grunt.json                               |   0
 94 files changed, 1454 insertions(+), 823 deletions(-)
----------------------------------------------------------------------



[32/41] incubator-kylin git commit: Fix CI

Posted by li...@apache.org.
Fix CI

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

Branch: refs/heads/inverted-index
Commit: 11ee3b36d27cdb233ea0138ab4c90598ad0b4bc5
Parents: 27eb3fc
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Mon Feb 16 16:37:32 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Mon Feb 16 16:37:32 2015 +0800

----------------------------------------------------------------------
 server/pom.xml | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/11ee3b36/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index 72ce020..6866879 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -70,6 +70,13 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.apache.kylin</groupId>
+            <artifactId>kylin-job</artifactId>
+            <version>${project.parent.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
         <!-- depends on kylin-jdbc just for running jdbc test cases in server module -->
         <dependency>
             <groupId>org.apache.kylin</groupId>


[27/41] incubator-kylin git commit: Merge branch 'inverted-index' into streaming

Posted by li...@apache.org.
Merge branch 'inverted-index' into streaming

Conflicts:
	bin/find-hive-dependency.sh


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

Branch: refs/heads/inverted-index
Commit: eb4ea7d6551c9f2db7c0c38f140d1468e68bb2b3
Parents: 301388e f2dd665
Author: qianhao.zhou <qi...@ebay.com>
Authored: Fri Feb 13 15:14:02 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Fri Feb 13 15:14:02 2015 +0800

----------------------------------------------------------------------
 bin/check-env.sh                                | 20 ++--------
 bin/find-hive-dependency.sh                     | 10 +++--
 bin/start-kylin.sh                              |  3 +-
 bin/stop-kylin.sh                               |  3 ++
 .../org/apache/kylin/common/KylinConfig.java    | 13 ++++---
 .../apache/kylin/common/util/HiveClient.java    | 31 ++++++++++++++--
 .../kylin/job/engine/JobEngineConfig.java       | 24 +++++-------
 .../kylin/job/hadoop/AbstractHadoopJob.java     | 39 ++++++++++++++------
 .../cardinality/HiveColumnCardinalityJob.java   | 22 ++---------
 .../kylin/job/hadoop/cube/CubeHFileJob.java     |  7 +---
 .../apache/kylin/job/hadoop/cube/CuboidJob.java |  7 +---
 .../job/hadoop/cube/FactDistinctColumnsJob.java | 15 ++------
 .../job/hadoop/cube/KeyDistributionJob.java     |  2 +-
 .../kylin/job/hadoop/cube/MergeCuboidJob.java   |  8 +---
 .../hadoop/cube/RangeKeyDistributionJob.java    |  7 +---
 .../cube/RowKeyDistributionCheckerJob.java      |  2 +-
 .../hadoop/invertedindex/IICreateHFileJob.java  | 14 ++-----
 .../invertedindex/IIDistinctColumnsJob.java     | 18 +++------
 .../hadoop/invertedindex/InvertedIndexJob.java  | 16 +++-----
 .../invertedindex/RandomKeyDistributionJob.java |  3 +-
 script/compress.sh                              |  3 ++
 21 files changed, 117 insertions(+), 150 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/eb4ea7d6/bin/check-env.sh
----------------------------------------------------------------------
diff --cc bin/check-env.sh
index 3bef6c4,3e9a814..14eea70
--- a/bin/check-env.sh
+++ b/bin/check-env.sh
@@@ -1,15 -1,12 +1,13 @@@
 +#!/bin/sh
+ #by source
  
- echo "Checking KYLIN_HOME..."
  if [ -z "$KYLIN_HOME" ]
  then
-     echo 'please make sure KYLIN_HOME has been set'
-     exit 1
- else
-     echo "KYLIN_HOME is set to ${KYLIN_HOME}"
+ 	bin=$(dirname ${0})
+ 	export KYLIN_HOME=$(dirname $bin)
  fi
+ echo "KYLIN_HOME is set to ${KYLIN_HOME}"
  
- echo "Checking hbase..."
  if [ -z "$(command -v hbase version)" ]
  then
      echo "Please make sure the user has the privilege to run hbase shell"

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/eb4ea7d6/bin/find-hive-dependency.sh
----------------------------------------------------------------------
diff --cc bin/find-hive-dependency.sh
index 4ae1a26,bc9b00c..f15e87e
--- a/bin/find-hive-dependency.sh
+++ b/bin/find-hive-dependency.sh
@@@ -15,16 -21,6 +21,14 @@@ d
  done
  hdp_home=`echo $hive_exec_path | awk -F '/hive/lib/' '{print $1}'`
  
- hive_dependency=${hdp_home}/hive/conf:${hdp_home}/hive/lib/*
- 
 -hive_dependency=$hive_conf_path:${hdp_home}/hive/lib/*:${hdp_home}/hive-hcatalog/share/hcatalog/*
 +hcatalog=`find $hdp_home -name "hive-hcatalog-core[0-9\.-]*jar" 2>&1 | grep -m 1 -v 'Permission denied'`
 +
 +if [ -z "$hcatalog" ]
 +then
 +    echo "hcatalog lib not found"
 +    exit 1
 +fi
 +
- hive_dependency=${hive_dependency}:${hcatalog}
++hive_dependency=${hive_conf_path}:${hdp_home}/hive/lib/*:${hcatalog}
  echo "hive dependency: $hive_dependency"
  export hive_dependency


[18/41] incubator-kylin git commit: Fix JobEngineConfig

Posted by li...@apache.org.
Fix JobEngineConfig

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

Branch: refs/heads/inverted-index
Commit: 875c634ee00562d7f83ea6ca01f4e97ce42a6dba
Parents: ba4f737
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Fri Feb 13 10:51:27 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Fri Feb 13 10:51:27 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    | 11 +++++----
 .../kylin/job/engine/JobEngineConfig.java       | 24 ++++++++------------
 2 files changed, 15 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/875c634e/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
index 5138c0b..7a69e35 100644
--- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -515,7 +515,7 @@ public class KylinConfig {
     public static String getKylinHome() {
         String kylinHome = System.getenv(KYLIN_HOME);
         if (StringUtils.isEmpty(kylinHome)) {
-            logger.warn("KYLIN_HOME has not been set");
+            logger.warn("KYLIN_HOME was not set");
             return kylinHome;
         }
         return kylinHome;
@@ -531,15 +531,16 @@ public class KylinConfig {
 
     private static File getKylinProperties() {
         String kylinConfHome = System.getProperty(KYLIN_CONF_HOME);
-        if (StringUtils.isEmpty(kylinConfHome)) {
-            logger.warn("KYLIN_CONF_HOME has not been set");
-        } else {
+        if (!StringUtils.isEmpty(kylinConfHome)) {
+            logger.info("Use KYLIN_CONF_HOME=" + kylinConfHome);
             return getKylinPropertiesFile(kylinConfHome);
         }
 
+        logger.warn("KYLIN_CONF_HOME property was not set, will seek KYLIN_HOME env variable");
+
         String kylinHome = getKylinHome();
         if (StringUtils.isEmpty(kylinHome))
-            throw new RuntimeException("getKylinProperties needs KYLIN_HOME");
+            throw new RuntimeException("Didn't find KYLIN_CONF_HOME or KYLIN_HOME, please set one of them");
 
         String path = kylinHome + File.separator + "conf";
         return getKylinPropertiesFile(path);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/875c634e/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
index 3c01e09..08a5a2e 100644
--- a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
+++ b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
@@ -18,19 +18,14 @@
 
 package org.apache.kylin.job.engine;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
 import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.tools.OptionsHelper;
+import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity;
+import java.io.*;
 
 /**
  * @author ysong1
@@ -62,14 +57,13 @@ public class JobEngineConfig {
 
         File jobConfig = getJobConfig(hadoopJobConfFile);
         if (jobConfig == null || !jobConfig.exists()) {
-            logger.warn("fail to locate " + hadoopJobConfFile);
-        }
-        jobConfig = getJobConfig(HADOOP_JOB_CONF_FILENAME + ".xml");
-        if (jobConfig == null || !jobConfig.exists()) {
-            logger.error("fail to locate " + HADOOP_JOB_CONF_FILENAME + ".xml");
-            throw new RuntimeException("fail to locate " + hadoopJobConfFile);
+            logger.warn("fail to locate " + hadoopJobConfFile + ", trying to locate " + HADOOP_JOB_CONF_FILENAME + ".xml");
+            jobConfig = getJobConfig(HADOOP_JOB_CONF_FILENAME + ".xml");
+            if (jobConfig == null || !jobConfig.exists()) {
+                logger.error("fail to locate " + HADOOP_JOB_CONF_FILENAME + ".xml");
+                throw new RuntimeException("fail to locate " + HADOOP_JOB_CONF_FILENAME + ".xml");
+            }
         }
-
         return OptionsHelper.convertToFileURL(jobConfig.getAbsolutePath());
     }
 


[38/41] incubator-kylin git commit: Merge pull request #429 from janzhongi/inverted-index

Posted by li...@apache.org.
Merge pull request #429 from janzhongi/inverted-index

fix joblist bug & jira:KYLIN-593

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

Branch: refs/heads/inverted-index
Commit: 7d9851ea6e59d5e9c1a42ed79c709b663fd9f242
Parents: a7d0ea3 2b01dcc
Author: Zhong,Jian <ji...@ebay.com>
Authored: Fri Feb 27 11:05:10 2015 +0800
Committer: Zhong,Jian <ji...@ebay.com>
Committed: Fri Feb 27 11:05:10 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/model/cubeListModel.js | 0
 webapp/app/js/model/jobListModel.js  | 2 +-
 webapp/grunt.json                    | 4 ++--
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[25/41] incubator-kylin git commit: fix classpath for all mapred jobs, CDH 5.1 now works!

Posted by li...@apache.org.
fix classpath for all mapred jobs, CDH 5.1 now works!


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

Branch: refs/heads/inverted-index
Commit: f2dd665171777db6060f455232182ed1751f9d5e
Parents: 752187b
Author: Li, Yang <ya...@ebay.com>
Authored: Fri Feb 13 14:59:31 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Fri Feb 13 14:59:31 2015 +0800

----------------------------------------------------------------------
 .../kylin/job/hadoop/AbstractHadoopJob.java     | 42 +++++++++++++-------
 .../cardinality/HiveColumnCardinalityJob.java   | 22 ++--------
 .../kylin/job/hadoop/cube/CubeHFileJob.java     |  7 +---
 .../apache/kylin/job/hadoop/cube/CuboidJob.java |  7 +---
 .../job/hadoop/cube/FactDistinctColumnsJob.java | 15 ++-----
 .../job/hadoop/cube/KeyDistributionJob.java     |  2 +-
 .../kylin/job/hadoop/cube/MergeCuboidJob.java   |  8 +---
 .../hadoop/cube/RangeKeyDistributionJob.java    |  7 +---
 .../cube/RowKeyDistributionCheckerJob.java      |  2 +-
 .../hadoop/invertedindex/IICreateHFileJob.java  | 14 ++-----
 .../invertedindex/IIDistinctColumnsJob.java     | 18 +++------
 .../hadoop/invertedindex/InvertedIndexJob.java  | 16 +++-----
 .../invertedindex/RandomKeyDistributionJob.java |  3 +-
 13 files changed, 56 insertions(+), 107 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
index 4d6d8d4..1997327 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
@@ -113,24 +113,9 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
         return optionsHelper.hasOption(option);
     }
 
-    private static final String MAP_REDUCE_CLASSPATH = "mapreduce.application.classpath";
-
     protected int waitForCompletion(Job job) throws IOException, InterruptedException, ClassNotFoundException {
         int retVal = 0;
         long start = System.nanoTime();
-        String kylinHiveDependency = System.getProperty("kylin.hive.dependency");
-        logger.info("append kylin.hive.dependency: " + kylinHiveDependency + " to " + MAP_REDUCE_CLASSPATH);
-        if (kylinHiveDependency != null) {
-            // yarn classpath is comma separated
-            kylinHiveDependency = kylinHiveDependency.replace(":", ",");
-            Configuration jobConf = job.getConfiguration();
-            final String classpath = jobConf.get(MAP_REDUCE_CLASSPATH);
-            if (classpath == null) {
-                jobConf.set(MAP_REDUCE_CLASSPATH, kylinHiveDependency);
-            } else {
-                jobConf.set(MAP_REDUCE_CLASSPATH, classpath + "," + kylinHiveDependency);
-            }
-        }
         if (isAsync) {
             job.submit();
         } else {
@@ -150,6 +135,33 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
             System.exit(5);
         }
     }
+    
+    private static final String MAP_REDUCE_CLASSPATH = "mapreduce.application.classpath";
+
+    protected void setJobClasspath(Job job) {
+        String jarPath = KylinConfig.getInstanceFromEnv().getKylinJobJarPath();
+        File jarFile = new File(jarPath);
+        if (jarFile.exists()) {
+            job.setJar(jarPath);
+            logger.info("append job jar: " + jarPath);
+        } else {
+            job.setJarByClass(this.getClass());
+        }
+
+        String kylinHiveDependency = System.getProperty("kylin.hive.dependency");
+        logger.info("append kylin.hive.dependency: " + kylinHiveDependency + " to " + MAP_REDUCE_CLASSPATH);
+        if (kylinHiveDependency != null) {
+            // yarn classpath is comma separated
+            kylinHiveDependency = kylinHiveDependency.replace(":", ",");
+            Configuration jobConf = job.getConfiguration();
+            final String classpath = jobConf.get(MAP_REDUCE_CLASSPATH);
+            if (classpath == null) {
+                jobConf.set(MAP_REDUCE_CLASSPATH, kylinHiveDependency);
+            } else {
+                jobConf.set(MAP_REDUCE_CLASSPATH, classpath + "," + kylinHiveDependency);
+            }
+        }
+    }
 
     public void addInputDirs(String input, Job job) throws IOException {
         for (String inp : StringSplitter.split(input, ",")) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
index 773e62f..d5e5292 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
@@ -49,20 +49,9 @@ public class HiveColumnCardinalityJob extends AbstractHadoopJob {
 
     public static final String OUTPUT_PATH = "/tmp/cardinality";
 
-    /**
-     * This is the jar path
-     */
-    private String jarPath;
-
-    private String table;
-
     public HiveColumnCardinalityJob() {
     }
 
-    public HiveColumnCardinalityJob(String path, String tokenPath) {
-        this.jarPath = path;
-    }
-
     @Override
     public int run(String[] args) throws Exception {
 
@@ -80,19 +69,14 @@ public class HiveColumnCardinalityJob extends AbstractHadoopJob {
             Configuration conf = getConf();
             job = Job.getInstance(conf, jobName);
 
-            // set job configuration - basic
-            if (jarPath == null || !new File(jarPath).exists()) {
-                job.setJarByClass(getClass());
-            } else {
-                job.setJar(jarPath);
-            }
-
+            setJobClasspath(job);
+            
             Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));
             FileOutputFormat.setOutputPath(job, output);
             job.getConfiguration().set("dfs.block.size", "67108864");
 
             // Mapper
-            this.table = getOptionValue(OPTION_TABLE);
+            String table = getOptionValue(OPTION_TABLE);
             String[] dbTableNames = HadoopUtil.parseHiveTableName(table);
             HCatInputFormat.setInput(job, dbTableNames[0], dbTableNames[1]);
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
index f0910df..a0d54cb 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
@@ -67,12 +67,7 @@ public class CubeHFileJob extends AbstractHadoopJob {
             CubeInstance cube = cubeMgr.getCube(cubeName);
             job = Job.getInstance(getConf(), getOptionValue(OPTION_JOB_NAME));
 
-            File JarFile = new File(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-            if (JarFile.exists()) {
-                job.setJar(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-            } else {
-                job.setJarByClass(this.getClass());
-            }
+            setJobClasspath(job);
 
             addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);
             FileOutputFormat.setOutputPath(job, output);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
index 0b3d272..be54ca7 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
@@ -83,12 +83,7 @@ public class CuboidJob extends AbstractHadoopJob {
             logger.info("Starting: " + job.getJobName());
             FileInputFormat.setInputPaths(job, input);
 
-            File jarFile = new File(config.getKylinJobJarPath());
-            if (jarFile.exists()) {
-                job.setJar(config.getKylinJobJarPath());
-            } else {
-                job.setJarByClass(this.getClass());
-            }
+            setJobClasspath(job);
 
             // Mapper
             if (this.mapperClass == null) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
index 47c8c50..ccc2e0d 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
@@ -18,7 +18,6 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
@@ -31,15 +30,14 @@ import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author yangli9
@@ -71,6 +69,8 @@ public class FactDistinctColumnsJob extends AbstractHadoopJob {
             job.getConfiguration().set(BatchConstants.CFG_CUBE_NAME, cubeName);
             System.out.println("Starting: " + job.getJobName());
 
+            setJobClasspath(job);
+            
             setupMapper(intermediateTable);
             setupReducer(output);
 
@@ -90,13 +90,6 @@ public class FactDistinctColumnsJob extends AbstractHadoopJob {
     private void setupMapper(String intermediateTable) throws IOException {
 //        FileInputFormat.setInputPaths(job, input);
 
-        File JarFile = new File(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-        if (JarFile.exists()) {
-            job.setJar(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-        } else {
-            job.setJarByClass(this.getClass());
-        }
-        
         String[] dbTableNames = HadoopUtil.parseHiveTableName(intermediateTable);
         HCatInputFormat.setInput(job, dbTableNames[0],
                 dbTableNames[1]);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/cube/KeyDistributionJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/KeyDistributionJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/KeyDistributionJob.java
index 7de432a..39efd8f 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/KeyDistributionJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/KeyDistributionJob.java
@@ -89,7 +89,7 @@ package org.apache.kylin.job.hadoop.cube;
 //            Job job = Job.getInstanceFromEnv(getConf(), jobName);
 //
 //            // set job configuration - basic 
-//            job.setJarByClass(getClass());
+//            setJobClasspath(job);
 //            addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);
 //
 //            Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
index b8b03be..0831d31 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
@@ -61,13 +61,7 @@ public class MergeCuboidJob extends CuboidJob {
             System.out.println("Starting: " + jobName);
             job = Job.getInstance(getConf(), jobName);
 
-            // set job configuration - basic
-            File JarFile = new File(config.getKylinJobJarPath());
-            if (JarFile.exists()) {
-                job.setJar(config.getKylinJobJarPath());
-            } else {
-                job.setJarByClass(this.getClass());
-            }
+            setJobClasspath(job);
 
             // set inputs
             addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
index 8b77497..061cb90 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
@@ -68,12 +68,7 @@ public class RangeKeyDistributionJob extends AbstractHadoopJob {
             String jobName = getOptionValue(OPTION_JOB_NAME);
             job = Job.getInstance(getConf(), jobName);
 
-            File JarFile = new File(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-            if (JarFile.exists()) {
-                job.setJar(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-            } else {
-                job.setJarByClass(this.getClass());
-            }
+            setJobClasspath(job);
 
             addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
index a441006..faf6675 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
@@ -59,7 +59,7 @@ public class RowKeyDistributionCheckerJob extends AbstractHadoopJob {
             String jobName = getOptionValue(OPTION_JOB_NAME);
             job = Job.getInstance(getConf(), jobName);
 
-            job.setJarByClass(this.getClass());
+            setJobClasspath(job);
 
             addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHFileJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHFileJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHFileJob.java
index 4f2a568..c479b68 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHFileJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHFileJob.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.job.hadoop.invertedindex;
 
-import java.io.File;
-
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -31,12 +29,11 @@ import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.util.ToolRunner;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author yangli9
@@ -61,12 +58,7 @@ public class IICreateHFileJob extends AbstractHadoopJob {
 
             job = Job.getInstance(getConf(), getOptionValue(OPTION_JOB_NAME));
 
-            File JarFile = new File(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-            if (JarFile.exists()) {
-                job.setJar(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-            } else {
-                job.setJarByClass(this.getClass());
-            }
+            setJobClasspath(job);
 
             addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);
             FileOutputFormat.setOutputPath(job, output);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
index 5b67057..9c7051a 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
@@ -18,7 +18,6 @@
 
 package org.apache.kylin.job.hadoop.invertedindex;
 
-import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
@@ -31,16 +30,16 @@ import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.job.hadoop.hive.IIJoinedFlatTableDesc;
 import org.apache.kylin.job.hadoop.hive.IntermediateColumnDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -74,6 +73,8 @@ public class IIDistinctColumnsJob extends AbstractHadoopJob {
             job.getConfiguration().set(BatchConstants.TABLE_NAME, tableName);
             job.getConfiguration().set(BatchConstants.TABLE_COLUMNS, getColumns(ii));
 
+            setJobClasspath(job);
+            
             setupMapper();
             setupReducer(output);
 
@@ -99,13 +100,6 @@ public class IIDistinctColumnsJob extends AbstractHadoopJob {
 
     private void setupMapper() throws IOException {
 
-        File JarFile = new File(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-        if (JarFile.exists()) {
-            job.setJar(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-        } else {
-            job.setJarByClass(this.getClass());
-        }
-
         String tableName = job.getConfiguration().get(BatchConstants.TABLE_NAME);
         String[] dbTableNames = HadoopUtil.parseHiveTableName(tableName);
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
index 547a499..6a0532e 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
@@ -18,7 +18,6 @@
 
 package org.apache.kylin.job.hadoop.invertedindex;
 
-import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
@@ -31,15 +30,15 @@ import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.invertedindex.IISegment;
+import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.HadoopUtil;
-import org.apache.kylin.job.constant.BatchConstants;
 
 /**
  * @author yangli9
@@ -69,6 +68,8 @@ public class InvertedIndexJob extends AbstractHadoopJob {
 
             IIInstance ii = getII(iiname);
             short sharding = ii.getDescriptor().getSharding();
+            
+            setJobClasspath(job);
 
             setupMapper(intermediateTable);
             setupReducer(output, sharding);
@@ -103,13 +104,6 @@ public class InvertedIndexJob extends AbstractHadoopJob {
 
     private void setupMapper(String intermediateTable) throws IOException {
 
-        File JarFile = new File(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-        if (JarFile.exists()) {
-            job.setJar(KylinConfig.getInstanceFromEnv().getKylinJobJarPath());
-        } else {
-            job.setJarByClass(this.getClass());
-        }
-
         String[] dbTableNames = HadoopUtil.parseHiveTableName(intermediateTable);
         HCatInputFormat.setInput(job, dbTableNames[0],
                 dbTableNames[1]);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/f2dd6651/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
index c55e5d4..0f94d32 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
@@ -63,7 +63,8 @@ public class RandomKeyDistributionJob extends AbstractHadoopJob {
             String jobName = getOptionValue(OPTION_JOB_NAME);
             job = Job.getInstance(getConf(), jobName);
 
-            job.setJarByClass(this.getClass());
+            setJobClasspath(job);
+            
             addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);
 
             Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));


[16/41] incubator-kylin git commit: better deployment

Posted by li...@apache.org.
better deployment


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

Branch: refs/heads/inverted-index
Commit: 28fe5c292fce8bbba96fa4eabd0a16f3d7563133
Parents: ed729ee
Author: Li, Yang <ya...@ebay.com>
Authored: Fri Feb 13 09:03:21 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Fri Feb 13 09:03:21 2015 +0800

----------------------------------------------------------------------
 bin/check-env.sh            | 21 ++++-----------------
 bin/find-hive-dependency.sh |  8 +++++++-
 bin/start-kylin.sh          |  3 +--
 bin/stop-kylin.sh           |  3 +++
 script/compress.sh          |  3 +++
 5 files changed, 18 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/28fe5c29/bin/check-env.sh
----------------------------------------------------------------------
diff --git a/bin/check-env.sh b/bin/check-env.sh
index 3bef6c4..3e9a814 100644
--- a/bin/check-env.sh
+++ b/bin/check-env.sh
@@ -1,39 +1,26 @@
-#!/bin/sh
+#by source
 
-echo "Checking KYLIN_HOME..."
 if [ -z "$KYLIN_HOME" ]
 then
-    echo 'please make sure KYLIN_HOME has been set'
-    exit 1
-else
-    echo "KYLIN_HOME is set to ${KYLIN_HOME}"
+	bin=$(dirname ${0})
+	export KYLIN_HOME=$(dirname $bin)
 fi
+echo "KYLIN_HOME is set to ${KYLIN_HOME}"
 
-echo "Checking hbase..."
 if [ -z "$(command -v hbase version)" ]
 then
     echo "Please make sure the user has the privilege to run hbase shell"
     exit 1
-else
-    echo "hbase check passed"
 fi
 
-echo "Checking hive..."
 if [ -z "$(command -v hive --version)" ]
 then
     echo "Please make sure the user has the privilege to run hive shell"
     exit 1
-else
-    echo "hive check passed"
 fi
 
-echo "Checking hadoop..."
 if [ -z "$(command -v hadoop version)" ]
 then
     echo "Please make sure the user has the privilege to run hadoop shell"
     exit 1
-else
-    echo "hadoop check passed"
 fi
-
-exit 0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/28fe5c29/bin/find-hive-dependency.sh
----------------------------------------------------------------------
diff --git a/bin/find-hive-dependency.sh b/bin/find-hive-dependency.sh
index 7bd5f43..bc9b00c 100644
--- a/bin/find-hive-dependency.sh
+++ b/bin/find-hive-dependency.sh
@@ -4,6 +4,7 @@ hive_env=`hive -e set | grep 'env:CLASSPATH'`
 
 hive_classpath=`echo $hive_env | grep 'env:CLASSPATH' | awk -F '=' '{print $2}'`
 arr=(`echo $hive_classpath | cut -d ":"  --output-delimiter=" " -f 1-`)
+hive_conf_path=
 hive_exec_path=
 for data in ${arr[@]}
 do
@@ -12,9 +13,14 @@ do
     then
         hive_exec_path=$data
     fi
+    result=`echo $data | grep 'hive/conf'`
+    if [ $result ]
+    then
+        hive_conf_path=$data
+    fi
 done
 hdp_home=`echo $hive_exec_path | awk -F '/hive/lib/' '{print $1}'`
 
-hive_dependency=/usr/hdp/current/hive-client/conf/:${hdp_home}/hive/lib/*:${hdp_home}/hive-hcatalog/share/hcatalog/*
+hive_dependency=$hive_conf_path:${hdp_home}/hive/lib/*:${hdp_home}/hive-hcatalog/share/hcatalog/*
 echo "hive dependency: $hive_dependency"
 export hive_dependency
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/28fe5c29/bin/start-kylin.sh
----------------------------------------------------------------------
diff --git a/bin/start-kylin.sh b/bin/start-kylin.sh
index b2544a5..70cbb62 100644
--- a/bin/start-kylin.sh
+++ b/bin/start-kylin.sh
@@ -1,12 +1,11 @@
 #!/bin/sh
 
 dir=$(dirname ${0})
+source ${dir}/check-env.sh
 
 tomcat_root=${dir}/../tomcat
 export tomcat_root
 
-sh ${dir}/check-env.sh || { exit 1; }
-
 #if [ ! -z "$KYLIN_LD_LIBRARY_PATH" ]
 #then
 #    echo "KYLIN_LD_LIBRARY_PATH is set to $KYLIN_LD_LIBRARY_PATH"

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/28fe5c29/bin/stop-kylin.sh
----------------------------------------------------------------------
diff --git a/bin/stop-kylin.sh b/bin/stop-kylin.sh
index c7a61b2..dad0a83 100644
--- a/bin/stop-kylin.sh
+++ b/bin/stop-kylin.sh
@@ -1,5 +1,8 @@
 #!/bin/sh
 
+dir=$(dirname ${0})
+source ${dir}/check-env.sh
+
 if [ ! -f "${KYLIN_HOME}/pid" ]
 then
     echo "no pid found"

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/28fe5c29/script/compress.sh
----------------------------------------------------------------------
diff --git a/script/compress.sh b/script/compress.sh
index 4dd91f3..f7d860a 100644
--- a/script/compress.sh
+++ b/script/compress.sh
@@ -16,6 +16,9 @@ echo 'package tgz'
 rm -rf kylin-${version}
 mkdir kylin-${version}
 cp -r lib bin conf tomcat kylin-${version}
+find kylin-${version} -type d -exec chmod 755 {} \;
+find kylin-${version} -type f -exec chmod 644 {} \;
+find kylin-${version} -type f -name "*.sh" -exec chmod 755 {} \;
 tar -cvzf kylin-${version}.tgz kylin-${version}
 rm -rf kylin-${version}
 


[03/41] incubator-kylin git commit: Revert "Update dictionary file"

Posted by li...@apache.org.
Revert "Update dictionary file"

This reverts commit 8245337eee917fdb66b11bbec63975bde85f7b31.


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

Branch: refs/heads/inverted-index
Commit: b9c738a40e7826ce371512d4d2464d1fe0042a83
Parents: efc76d6
Author: Shao Feng, Shi <sh...@ebay.com>
Authored: Thu Feb 12 14:26:23 2015 +0800
Committer: Shao Feng, Shi <sh...@ebay.com>
Committed: Thu Feb 12 14:26:23 2015 +0800

----------------------------------------------------------------------
 .../16d8185c-ee6b-4f8c-a919-756d9809f937.dict    | Bin 2630 -> 2515 bytes
 .../c12ae49d-9dbe-4a58-b169-19afac317696.dict    | Bin 2630 -> 2515 bytes
 .../eaed91b0-4182-4ee5-a733-1047a622ee29.dict    | Bin 2630 -> 2515 bytes
 .../ec83ebce-7534-4e62-ac6d-7445ee141ab4.dict    | Bin 2630 -> 2515 bytes
 .../7228fad8-a764-4bd4-8934-50e0d7cbcb19.dict    | Bin 3105 -> 2940 bytes
 .../8f92faa4-7d2d-455c-8623-6e1d1b272afe.dict    | Bin 3105 -> 2940 bytes
 .../ad09f2d5-054a-4e1b-a776-7cc07399a6c1.dict    | Bin 3105 -> 2940 bytes
 .../eacccee7-d120-4f4d-97d0-c99a5b83ec32.dict    | Bin 3105 -> 2940 bytes
 .../2602386c-debb-4968-8d2f-b52b8215e385.dict    | Bin 2000 -> 1841 bytes
 .../4243889f-bc81-4807-a975-7041bbbf35e7.dict    | Bin 2000 -> 1841 bytes
 .../494683c1-52d1-4d9a-a3f7-8c53b30fd898.dict    | Bin 2000 -> 1841 bytes
 .../8b4b1c06-fb74-486b-a2ad-74420afebcda.dict    | Bin 2000 -> 1841 bytes
 .../ac520edd-f9d2-419f-a7de-587bfb97dc81.dict    | Bin 2000 -> 1841 bytes
 .../0410d2c4-4686-40bc-ba14-170042a2de94.dict    | Bin 1537 -> 1498 bytes
 .../51ff5e6c-22b3-444e-9915-d376a10f20cb.dict    | Bin 1537 -> 1498 bytes
 .../a4e57e55-48fc-4f25-a9c8-485deed25925.dict    | Bin 1537 -> 1498 bytes
 .../aceae914-4246-4251-a0c2-692fe7a300df.dict    | Bin 1537 -> 1498 bytes
 .../b298089f-9656-4693-b9b2-8fea46f06dd5.dict    | Bin 1537 -> 1498 bytes
 .../c2af25cf-6c79-45e6-a6f6-6d2a8ecc6592.dict    | Bin 1537 -> 1498 bytes
 .../0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict    | Bin 640 -> 661 bytes
 .../14fe66b3-5956-498c-bd93-40182cac5510.dict    | Bin 640 -> 661 bytes
 .../1d383a36-81b9-4177-a822-04eab3683e5b.dict    | Bin 640 -> 661 bytes
 .../c6bf9b51-6e90-4337-8082-4e2fdf78307f.dict    | Bin 640 -> 661 bytes
 .../0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict    | Bin 2264 -> 2189 bytes
 .../31edf35b-ffca-4f24-8229-f87dc34e3087.dict    | Bin 2264 -> 2189 bytes
 .../652bd393-678a-4f16-a504-fd8ce1229355.dict    | Bin 2264 -> 2189 bytes
 .../792eb972-d046-48e6-9428-f6a3aed92fad.dict    | Bin 2264 -> 2189 bytes
 .../914536f8-1e14-43e9-b8ef-525bb5bdb3b2.dict    | Bin 2264 -> 2189 bytes
 .../d25e554e-deac-4e4a-9289-96f0d121d8fc.dict    | Bin 2264 -> 2189 bytes
 29 files changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/16d8185c-ee6b-4f8c-a919-756d9809f937.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/16d8185c-ee6b-4f8c-a919-756d9809f937.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/16d8185c-ee6b-4f8c-a919-756d9809f937.dict
index 6d5d786..a2cb760 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/16d8185c-ee6b-4f8c-a919-756d9809f937.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/16d8185c-ee6b-4f8c-a919-756d9809f937.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/c12ae49d-9dbe-4a58-b169-19afac317696.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/c12ae49d-9dbe-4a58-b169-19afac317696.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/c12ae49d-9dbe-4a58-b169-19afac317696.dict
index 8613105..e56eefb 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/c12ae49d-9dbe-4a58-b169-19afac317696.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/c12ae49d-9dbe-4a58-b169-19afac317696.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/eaed91b0-4182-4ee5-a733-1047a622ee29.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/eaed91b0-4182-4ee5-a733-1047a622ee29.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/eaed91b0-4182-4ee5-a733-1047a622ee29.dict
index bf55928..efcacde 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/eaed91b0-4182-4ee5-a733-1047a622ee29.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/eaed91b0-4182-4ee5-a733-1047a622ee29.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/ec83ebce-7534-4e62-ac6d-7445ee141ab4.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/ec83ebce-7534-4e62-ac6d-7445ee141ab4.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/ec83ebce-7534-4e62-ac6d-7445ee141ab4.dict
index ab6471e..95cf51c 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/ec83ebce-7534-4e62-ac6d-7445ee141ab4.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/ec83ebce-7534-4e62-ac6d-7445ee141ab4.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/7228fad8-a764-4bd4-8934-50e0d7cbcb19.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/7228fad8-a764-4bd4-8934-50e0d7cbcb19.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/7228fad8-a764-4bd4-8934-50e0d7cbcb19.dict
index 6cc0bd3..823c00d 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/7228fad8-a764-4bd4-8934-50e0d7cbcb19.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/7228fad8-a764-4bd4-8934-50e0d7cbcb19.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/8f92faa4-7d2d-455c-8623-6e1d1b272afe.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/8f92faa4-7d2d-455c-8623-6e1d1b272afe.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/8f92faa4-7d2d-455c-8623-6e1d1b272afe.dict
index 45196fa..5236f78 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/8f92faa4-7d2d-455c-8623-6e1d1b272afe.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/8f92faa4-7d2d-455c-8623-6e1d1b272afe.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/ad09f2d5-054a-4e1b-a776-7cc07399a6c1.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/ad09f2d5-054a-4e1b-a776-7cc07399a6c1.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/ad09f2d5-054a-4e1b-a776-7cc07399a6c1.dict
index 6f76b45..bc1d8e8 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/ad09f2d5-054a-4e1b-a776-7cc07399a6c1.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/ad09f2d5-054a-4e1b-a776-7cc07399a6c1.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/eacccee7-d120-4f4d-97d0-c99a5b83ec32.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/eacccee7-d120-4f4d-97d0-c99a5b83ec32.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/eacccee7-d120-4f4d-97d0-c99a5b83ec32.dict
index 5c3713d..0bbe66f 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/eacccee7-d120-4f4d-97d0-c99a5b83ec32.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/eacccee7-d120-4f4d-97d0-c99a5b83ec32.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/2602386c-debb-4968-8d2f-b52b8215e385.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/2602386c-debb-4968-8d2f-b52b8215e385.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/2602386c-debb-4968-8d2f-b52b8215e385.dict
index ccb833b..1d25663 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/2602386c-debb-4968-8d2f-b52b8215e385.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/2602386c-debb-4968-8d2f-b52b8215e385.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/4243889f-bc81-4807-a975-7041bbbf35e7.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/4243889f-bc81-4807-a975-7041bbbf35e7.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/4243889f-bc81-4807-a975-7041bbbf35e7.dict
index cf7a4b4..a046dbb 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/4243889f-bc81-4807-a975-7041bbbf35e7.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/4243889f-bc81-4807-a975-7041bbbf35e7.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/494683c1-52d1-4d9a-a3f7-8c53b30fd898.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/494683c1-52d1-4d9a-a3f7-8c53b30fd898.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/494683c1-52d1-4d9a-a3f7-8c53b30fd898.dict
index 106eb76..c1a4196 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/494683c1-52d1-4d9a-a3f7-8c53b30fd898.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/494683c1-52d1-4d9a-a3f7-8c53b30fd898.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/8b4b1c06-fb74-486b-a2ad-74420afebcda.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/8b4b1c06-fb74-486b-a2ad-74420afebcda.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/8b4b1c06-fb74-486b-a2ad-74420afebcda.dict
index 6027c81..b60e34f 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/8b4b1c06-fb74-486b-a2ad-74420afebcda.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/8b4b1c06-fb74-486b-a2ad-74420afebcda.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/ac520edd-f9d2-419f-a7de-587bfb97dc81.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/ac520edd-f9d2-419f-a7de-587bfb97dc81.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/ac520edd-f9d2-419f-a7de-587bfb97dc81.dict
index b7946cf..2c47f75 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/ac520edd-f9d2-419f-a7de-587bfb97dc81.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/ac520edd-f9d2-419f-a7de-587bfb97dc81.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/0410d2c4-4686-40bc-ba14-170042a2de94.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/0410d2c4-4686-40bc-ba14-170042a2de94.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/0410d2c4-4686-40bc-ba14-170042a2de94.dict
index 63f659b..c72d118 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/0410d2c4-4686-40bc-ba14-170042a2de94.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/0410d2c4-4686-40bc-ba14-170042a2de94.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/51ff5e6c-22b3-444e-9915-d376a10f20cb.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/51ff5e6c-22b3-444e-9915-d376a10f20cb.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/51ff5e6c-22b3-444e-9915-d376a10f20cb.dict
index 4c8dfbe..4fd22f8 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/51ff5e6c-22b3-444e-9915-d376a10f20cb.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/51ff5e6c-22b3-444e-9915-d376a10f20cb.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/a4e57e55-48fc-4f25-a9c8-485deed25925.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/a4e57e55-48fc-4f25-a9c8-485deed25925.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/a4e57e55-48fc-4f25-a9c8-485deed25925.dict
index 1fd7418..67dbea4 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/a4e57e55-48fc-4f25-a9c8-485deed25925.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/a4e57e55-48fc-4f25-a9c8-485deed25925.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/aceae914-4246-4251-a0c2-692fe7a300df.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/aceae914-4246-4251-a0c2-692fe7a300df.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/aceae914-4246-4251-a0c2-692fe7a300df.dict
index 147986e..df0c657 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/aceae914-4246-4251-a0c2-692fe7a300df.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/aceae914-4246-4251-a0c2-692fe7a300df.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/b298089f-9656-4693-b9b2-8fea46f06dd5.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/b298089f-9656-4693-b9b2-8fea46f06dd5.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/b298089f-9656-4693-b9b2-8fea46f06dd5.dict
index 26dda49..3a28967 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/b298089f-9656-4693-b9b2-8fea46f06dd5.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/b298089f-9656-4693-b9b2-8fea46f06dd5.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/c2af25cf-6c79-45e6-a6f6-6d2a8ecc6592.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/c2af25cf-6c79-45e6-a6f6-6d2a8ecc6592.dict b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/c2af25cf-6c79-45e6-a6f6-6d2a8ecc6592.dict
index 36523c0..e898c45 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/c2af25cf-6c79-45e6-a6f6-6d2a8ecc6592.dict and b/examples/test_case_data/localmeta/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/c2af25cf-6c79-45e6-a6f6-6d2a8ecc6592.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict b/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict
index 0e03620..afe548d 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict and b/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/14fe66b3-5956-498c-bd93-40182cac5510.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/14fe66b3-5956-498c-bd93-40182cac5510.dict b/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/14fe66b3-5956-498c-bd93-40182cac5510.dict
index 8e92724..460da2b 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/14fe66b3-5956-498c-bd93-40182cac5510.dict and b/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/14fe66b3-5956-498c-bd93-40182cac5510.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/1d383a36-81b9-4177-a822-04eab3683e5b.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/1d383a36-81b9-4177-a822-04eab3683e5b.dict b/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/1d383a36-81b9-4177-a822-04eab3683e5b.dict
index 400ebf1..7a97f71 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/1d383a36-81b9-4177-a822-04eab3683e5b.dict and b/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/1d383a36-81b9-4177-a822-04eab3683e5b.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/c6bf9b51-6e90-4337-8082-4e2fdf78307f.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/c6bf9b51-6e90-4337-8082-4e2fdf78307f.dict b/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/c6bf9b51-6e90-4337-8082-4e2fdf78307f.dict
index 91de7c8..6f270fe 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/c6bf9b51-6e90-4337-8082-4e2fdf78307f.dict and b/examples/test_case_data/localmeta/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/c6bf9b51-6e90-4337-8082-4e2fdf78307f.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict
index 00be694..5be36a1 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict and b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/31edf35b-ffca-4f24-8229-f87dc34e3087.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/31edf35b-ffca-4f24-8229-f87dc34e3087.dict b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/31edf35b-ffca-4f24-8229-f87dc34e3087.dict
index c9a6a66..87057cd 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/31edf35b-ffca-4f24-8229-f87dc34e3087.dict and b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/31edf35b-ffca-4f24-8229-f87dc34e3087.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/652bd393-678a-4f16-a504-fd8ce1229355.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/652bd393-678a-4f16-a504-fd8ce1229355.dict b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/652bd393-678a-4f16-a504-fd8ce1229355.dict
index cea96a2..194b7e2 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/652bd393-678a-4f16-a504-fd8ce1229355.dict and b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/652bd393-678a-4f16-a504-fd8ce1229355.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/792eb972-d046-48e6-9428-f6a3aed92fad.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/792eb972-d046-48e6-9428-f6a3aed92fad.dict b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/792eb972-d046-48e6-9428-f6a3aed92fad.dict
index e3b4784..0a60fc3 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/792eb972-d046-48e6-9428-f6a3aed92fad.dict and b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/792eb972-d046-48e6-9428-f6a3aed92fad.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/914536f8-1e14-43e9-b8ef-525bb5bdb3b2.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/914536f8-1e14-43e9-b8ef-525bb5bdb3b2.dict b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/914536f8-1e14-43e9-b8ef-525bb5bdb3b2.dict
index 1b0c03b..eb64935 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/914536f8-1e14-43e9-b8ef-525bb5bdb3b2.dict and b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/914536f8-1e14-43e9-b8ef-525bb5bdb3b2.dict differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b9c738a4/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/d25e554e-deac-4e4a-9289-96f0d121d8fc.dict
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/d25e554e-deac-4e4a-9289-96f0d121d8fc.dict b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/d25e554e-deac-4e4a-9289-96f0d121d8fc.dict
index 700f6b5..a10c74b 100644
Binary files a/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/d25e554e-deac-4e4a-9289-96f0d121d8fc.dict and b/examples/test_case_data/localmeta/dict/TEST_SITES/SITE_ID/d25e554e-deac-4e4a-9289-96f0d121d8fc.dict differ


[10/41] incubator-kylin git commit: update download link for 0.7.1

Posted by li...@apache.org.
update download link for 0.7.1


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

Branch: refs/heads/inverted-index
Commit: e23472ca25260013330fae87aa72ec638489f308
Parents: 9fa0252
Author: lukehan <lu...@apache.org>
Authored: Thu Feb 12 15:50:02 2015 +0800
Committer: lukehan <lu...@apache.org>
Committed: Thu Feb 12 15:50:02 2015 +0800

----------------------------------------------------------------------
 docs/website/download/index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e23472ca/docs/website/download/index.md
----------------------------------------------------------------------
diff --git a/docs/website/download/index.md b/docs/website/download/index.md
index 8491eb1..1c6b935 100644
--- a/docs/website/download/index.md
+++ b/docs/website/download/index.md
@@ -14,7 +14,7 @@ title: Community
             <div class="col-sm-4 col-md-4">
 
               <p class="big_text">Binary Package</p>
-              <p><a href="http://strataconf.com/big-data-conference-uk-2015/public/schedule/detail/40029" target="_blank">v0.7.1-SNAPSHOT</a> 
+              <p><a href="http://kylin.incubator.apache.org/download/kylin-0.7.1-SNAPSHOT.tgz" target="_blank">v0.7.1-SNAPSHOT</a> 
               <br/>date - Feb 12, 2015 <br/></p>
             </div>