You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by lu...@apache.org on 2015/07/15 08:44:46 UTC

[38/43] incubator-kylin git commit: KYLIN-884 re-structure website, using new menu, move to root dir

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/gettingstarted/What-should-I-use-Kylin-for.md
----------------------------------------------------------------------
diff --git a/website/_docs/gettingstarted/What-should-I-use-Kylin-for.md b/website/_docs/gettingstarted/What-should-I-use-Kylin-for.md
new file mode 100644
index 0000000..4edc872
--- /dev/null
+++ b/website/_docs/gettingstarted/What-should-I-use-Kylin-for.md
@@ -0,0 +1,55 @@
+---
+layout: post
+title: "What Should I use Kylin for?"
+categories: gettingstarted
+---
+
+<p class="content-header" style="margin-top:0.25em">What should I use Kylin for?</p>
+<p class="content-p">
+If you want to do multi-dimension analysis on large data sets (billion+ rows) with low query latency (sub-seconds), Kylin is a good option. Kylin also provides good integration with existing BI tools (e.g Tableau).
+</p>
+
+<hr/>
+ 
+<p class="content-header">Why existing SQL-on-Hadoop solutions fall short?</p>
+<p class="content-p">
+The existing SQL-on-Hadoop needs to scan partial or whole data set to answer a user query. Due to large data scan, many queries are very slow (minute+ latency).  
+</p>
+<hr/>
+ 
+<p class="content-header">What is MOLAP/ROLAP?</p>
+<p class="content-p">
+MOLAP (Multi-dimensional OLAP) is to pre-compute data along different dimensions of interest and store resultant values in the cube. MOLAP is much faster but is inflexible.
+ROLAP (Relational-OLAP) is to use star or snow-flake schema to do runtime aggregation. ROLAP is flexible but much slower.
+</p>
+<hr/>
+
+<p class="content-header">How does Kylin support ROLAP/MOLAP?</p>
+<p class="content-p">
+Kylin builds data cube (MOLAP) from hive table (ROLAP) according to the metadata definition.
+If the query can be fulfilled by data cube, Kylin will route the query to data cube that is MOLAP.
+If the query can’t be fulfilled by data cube, Kylin will route the query to hive table that is ROLAP.
+Basically, you can think Kylin as HOLAP on top of MOLAP and ROLAP. 
+</p>
+<hr/>
+<p class="content-header">What does a Kylin query look like?</p>
+<p class="content-p">
+Kylin supports join, projection, filter, aggregation, groups and sub-query. For example:
+<div align="left">
+
+<pre class="prettyprint" style="margin-top:1em;">select test_cal_dt.week_beg_dt, test_category.lv1_categ, test_category.lv2_categ, test_kylin_fact.format_name, test_sites.site_name, sum(test_kylin_fact.price) as total_price, count(*) as total_count from test_kylin_fact left join test_cal_dt on test_kylin_fact.cal_dt = test_cal_dt.cal_dt left join test_category on test_kylin_fact.leaf_categ_id = test_category.leaf_categ_id and test_kylin_fact.site_id = test_category.site_id left join test_sites on test_kylin_fact.site_id = test_sites.site_id where test_kylin_fact.seller_id = 123456 or test_kylin_fact.format_name = 'New' group by test_cal_dt.week_beg_dt, test_category.lv1_categ, test_category.lv2_categ, test_kylin_fact.format_name, test_sites.site_name</pre>
+</div>
+<hr/>
+
+<p class="content-header">What Hadoop components does it work with?</p>
+<p class="content-p">
+Kylin depends on HDFS, MapReduce, Hive and HBase.
+Hive and MapReduce is used for cube building. Hive is used for pre-join and MapReduce is used for pre-aggregation.
+HDFS is used to store intermediated files during cube building.
+HBase is used to store data cube and answer the query. HBase coprocessor is also used for query processing.
+</p>
+<hr/>
+
+<p class="content-header">Where can I find the technical details about Kylin?</p>
+<p class="content-p"><a href="http://www.slideshare.net/XuJiang2/kylin-hadoop-olap-engine" target="_blank">Kylin OLAP</a></p>
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/gettingstarted/events.md
----------------------------------------------------------------------
diff --git a/website/_docs/gettingstarted/events.md b/website/_docs/gettingstarted/events.md
new file mode 100644
index 0000000..55f9c54
--- /dev/null
+++ b/website/_docs/gettingstarted/events.md
@@ -0,0 +1,25 @@
+---
+layout: post
+title:  "Events and Conferences"
+categories: gettingstarted
+---
+
+__Coming Events__
+
+* ApacheCon EU 2015
+
+__Conferences__
+
+* [Apache Kylin - Balance Between Space and Time](https://www.youtube.com/watch?v=jgvZSFaXPgI), [slides](http://www.slideshare.net/DebashisSaha/apache-kylin-balance-between-space-and-time-hadop-summit-2015) ([video](https://www.youtube.com/watch?v=jgvZSFaXPgI), [slides](http://www.slideshare.net/DebashisSaha/apache-kylin-balance-between-space-and-time-hadop-summit-2015)) by [Debashis Saha](https://twitter.com/debashis_saha) & [Luke Han](https://twitter.com/lukehq), at Hadoop Summit 2015 in San Jose, US, 2015-06-09
+* [HBaseCon 2015: Apache Kylin; Extreme OLAP Engine for Hadoop](https://vimeo.com/128152444) ([video](https://vimeo.com/128152444), [slides](http://www.slideshare.net/HBaseCon/ecosystem-session-3b)) by [Seshu Adunuthula](https://twitter.com/SeshuAd) at HBaseCon 2015 in San Francisco, US, 2015-05-07
+* [Apache Kylin - Extreme OLAP Engine for Hadoop](http://strataconf.com/big-data-conference-uk-2015/public/schedule/detail/40029) ([slides](http://www.slideshare.net/lukehan/apache-kylin-extreme-olap-engine-for-big-data)) by [Luke Han](https://twitter.com/lukehq) & [Yang Li](https://github.com/liyang-gmt8), at Strata+Hadoop World in London, UK, 2015-05-06
+* [Apache Kylin Open Source Journey](http://www.infoq.com/cn/presentations/open-source-journey-of-apache-kylin) ([slides](http://www.slideshare.net/lukehan/apache-kylin-open-source-journey-for-qcon2015-beijing)) by [Luke Han](https://twitter.com/lukehq), at QCon Beijing in Beijing, China, 2015-04-23
+* [Apache Kylin - OLAP on Hadoop](http://cio.it168.com/a2015/0418/1721/000001721404.shtml) by [Yang Li](https://github.com/liyang-gmt8), at Database Technology Conference China 2015 in Beijing, China, 2015-04-18
+* [Apache Kylin – Cubes on Hadoop](https://www.youtube.com/watch?v=U0SbrVzuOe4) ([video](https://www.youtube.com/watch?v=U0SbrVzuOe4), [slides](http://www.slideshare.net/Hadoop_Summit/apache-kylin-cubes-on-hadoop)) by [Ted Dunning](https://twitter.com/ted_dunning), at Hadoop Summit 2015 Europe in Brussels, Belgium, 2015-04-16
+* [Apache Kylin - Hadoop 上的大规模联机分析平台](http://bdtc2014.hadooper.cn/m/zone/bdtc_2014/schedule3) ([slides](http://www.slideshare.net/lukehan/apache-kylin-big-data-technology-conference-2014-beijing-v2)) by [Luke Han](https://twitter.com/lukehq), at Big Data Technology Conference China in Beijing, China, 2014-12-14
+* [Apache Kylin: OLAP Engine on Hadoop - Tech Deep Dive](http://v.csdn.hudong.com/s/article.html?arcid=15820707) ([video](http://v.csdn.hudong.com/s/article.html?arcid=15820707), [slides](http://www.slideshare.net/XuJiang2/kylin-hadoop-olap-engine)) by [Jiang Xu](https://www.linkedin.com/pub/xu-jiang/4/5a8/230), at Shanghai Big Data Summit 2014 in Shanghai, China , 2014-10-25
+
+__Meetup__
+
+* [Apache Kylin Meetup @Bay Area](http://www.meetup.com/Cloud-at-ebayinc/events/218914395/), in San Jose, US, 6:00PM - 7:30PM, Thursday, 2014-12-04
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/gettingstarted/faq.md
----------------------------------------------------------------------
diff --git a/website/_docs/gettingstarted/faq.md b/website/_docs/gettingstarted/faq.md
new file mode 100644
index 0000000..96d9640
--- /dev/null
+++ b/website/_docs/gettingstarted/faq.md
@@ -0,0 +1,55 @@
+---
+layout: docs
+title:  "FAQ"
+categories: gettingstarted
+permalink: /docs/gettingstarted/faq.html
+version: v0.7.2
+since: v0.6.x
+---
+
+>version: {{page.version}}, since {{page.since}}
+
+### Some NPM error causes ERROR exit (中国大陆地区用户请特别注意此问题)?  
+For people from China:  
+
+* Please add proxy for your NPM (请为NPM设置代理):  
+`npm config set proxy http://YOUR_PROXY_IP`
+
+* Please update your local NPM repository to using any mirror of npmjs.org, like Taobao NPM (请更新您本地的NPM仓库以使用国内的NPM镜像,例如淘宝NPM镜像) :  
+[http://npm.taobao.org](http://npm.taobao.org)
+
+### Can't get master address from ZooKeeper" when installing Kylin on Hortonworks Sandbox
+Check out [https://github.com/KylinOLAP/Kylin/issues/9](https://github.com/KylinOLAP/Kylin/issues/9).
+
+### Install scripted finished in my virtual machine, but cannot visit via http://localhost:9080
+Check out [https://github.com/KylinOLAP/Kylin/issues/12](https://github.com/KylinOLAP/Kylin/issues/12).
+
+### Map Reduce Job information can't display on sandbox deployment
+Check out [https://github.com/KylinOLAP/Kylin/issues/40](https://github.com/KylinOLAP/Kylin/issues/40)
+
+#### Install Kylin on CDH 5.2 or Hadoop 2.5.x
+Check out discussion: [https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/kylin-olap/X0GZfsX1jLc/nzs6xAhNpLkJ](https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/kylin-olap/X0GZfsX1jLc/nzs6xAhNpLkJ)
+{% highlight Groff markup %}
+I was able to deploy Kylin with following option in POM.
+<hadoop2.version>2.5.0</hadoop2.version>
+<yarn.version>2.5.0</yarn.version>
+<hbase-hadoop2.version>0.98.6-hadoop2</hbase-hadoop2.version>
+<zookeeper.version>3.4.5</zookeeper.version>
+<hive.version>0.13.1</hive.version>
+My Cluster is running on Cloudera Distribution CDH 5.2.0.
+{% endhighlight %}
+
+#### Unable to load a big cube as HTable, with java.lang.OutOfMemoryError: unable to create new native thread
+HBase (as of writing) allocates one thread per region when bulk loading a HTable. Try reduce the number of regions of your cube by setting its "capacity" to "MEDIUM" or "LARGE". Also tweaks OS & JVM can allow more threads, for example see [this article](http://blog.egilh.com/2006/06/2811aspx.html).
+
+#### Failed to run BuildCubeWithEngineTest, saying failed to connect to hbase while hbase is active
+User may get this error when first time run hbase client, please check the error trace to see whether there is an error saying couldn't access a folder like "/hadoop/hbase/local/jars"; If that folder doesn't exist, create it.
+
+#### SUM(field) returns a negtive result while all the numbers in this field are > 0
+If a column is declared as integer in Hive, the SQL engine (calcite) will use column's type (integer) as the data type for "SUM(field)", while the aggregated value on this field may exceed the scope of integer; in that case the cast will cause a negtive value be returned; The workround is, alter that column's type to BIGINT in hive, and then sync the table schema to Kylin (the cube doesn't need rebuild); Keep in mind that, always declare as BIGINT in hive for an integer column which would be used as a measure in Kylin; See hive number types: [https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-NumericTypes](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-NumericTypes)
+
+#### Why Kylin need extract the distinct columns from Fact Table before building cube?
+Kylin uses dictionary to encode the values in each column, this greatly reduce the cube's storage size. To build the dictionary, Kylin need fetch the distinct values for each column.
+
+#### Why Kylin calculate the HIVE table cardinality?
+The cardinality of dimensions is an important measure of cube complexity. The higher the cardinality, the bigger the cube, and thus the longer to build and the slower to query. Cardinality > 1,000 is worth attention and > 1,000,000 should be avoided at best effort. For optimal cube performance, try reduce high cardinality by categorize values or derive features.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/gettingstarted/terminology.md
----------------------------------------------------------------------
diff --git a/website/_docs/gettingstarted/terminology.md b/website/_docs/gettingstarted/terminology.md
new file mode 100644
index 0000000..59a9a58
--- /dev/null
+++ b/website/_docs/gettingstarted/terminology.md
@@ -0,0 +1,15 @@
+---
+layout: docs
+title:  "Terminology"
+categories: gettingstarted
+permalink: /docs/gettingstarted/terminology.html
+version: v0.7.2
+since: v0.5.x
+---
+
+>version: {{page.version}}, since {{page.since}}
+
+* OLAP
+* Cube
+
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/howto/How to install kylin in your Hadoop cluster.md
----------------------------------------------------------------------
diff --git a/website/_docs/howto/How to install kylin in your Hadoop cluster.md b/website/_docs/howto/How to install kylin in your Hadoop cluster.md
new file mode 100644
index 0000000..d16cf5f
--- /dev/null
+++ b/website/_docs/howto/How to install kylin in your Hadoop cluster.md	
@@ -0,0 +1,53 @@
+---
+layout: post
+title:  "How to install kylin in your Hadoop cluster"
+categories: howto
+permalink: /docs/howto/howto_install.html
+---
+
+## 1 Environment
+We can open the Kylin’ code directory and read the pom.xml, and find some components version:
+
+### 1.1 Install hadoop cluster
+
+{% highlight Groff markup %}
+  <hadoop2.version>2.4.1</hadoop2.version>
+  <hbase-hadoop2.version>0.98.0-hadoop2</hbase-hadoop2.version>
+  <hive.version>0.13.0</hive.version> (ps: install mysql --use mysql to store metastore_db)
+{% endhighlight %}
+
+Attach:
+
+1) When you build the cube and get this error: java.net.ConnectException: to 0.0.0.0:10020 failed on connection exception, you can try to change this file.
+
+config ${hadoop install}/etc/hadoop/mapred-site.xml, and add this code:
+{% highlight Groff markup %}
+  <property>
+    <name>mapreduce.jobhistory.address</name>
+    <value>host:10020</value>
+  </property>
+{% endhighlight %}
+
+Execute this cmd after the configuration:
+$ mr-jobhistory-daemon.sh start historyserver
+
+2) The version of hadoop which Hbase used must be same as the hadoop cluster.
+
+For example:
+
+In Hbase0.98.0-hadoop2 use hadoop 2.2.0, if your hadoop cluster is 2.4.1, then you need to replace all the hadoop jars from 2.2.0 to 2.4.1.
+
+### 1.2	Install other components
+
+Command hadoop, hive, hbase is workable on your hadoop cluster, this step can read this link [https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation)
+{% highlight Groff markup %}
+  <javaVersion>1.7</javaVersion>
+  Maven
+  Git
+  Tomcat (CATALINA_HOME being set)
+  Npm
+{% endhighlight %}
+
+## 2 Install Kylin
+
+### 2.1	Run the deploy.sh

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/howto/howto_backup.md
----------------------------------------------------------------------
diff --git a/website/_docs/howto/howto_backup.md b/website/_docs/howto/howto_backup.md
new file mode 100644
index 0000000..b9dd069
--- /dev/null
+++ b/website/_docs/howto/howto_backup.md
@@ -0,0 +1,24 @@
+---
+layout: post
+title:  "Export Kylin HBase data"
+categories: howto
+permalink: /docs/howto/howto_export.html
+---
+
+Kylin persists all data (meta data and cube) in HBase; You may want to export the data sometimes for whatever purposes (backup, migration, troubleshotting etc); This page describes the steps to do this and also there is a Java app for you to do this easily;
+
+Steps:
+
+1. Cleanup unused cubes to save storage space (be cautious on production!): run the following command in hbase CLI: 
+{% highlight Groff markup %}
+hbase org.apache.hadoop.util.RunJar /${KYLIN_HOME}/lib/kylin-job-(version).jar org.apache.kylin.job.hadoop.cube.StorageCleanupJob --delete true
+{% endhighlight %}
+2. List all HBase tables, iterate and then export each Kylin table to HDFS; See [https://hbase.apache.org/book/ops_mgt.html#export](https://hbase.apache.org/book/ops_mgt.html#export)
+
+3. Copy the export folder from HDFS to local file system, and then archive it;
+
+4. (optional) Download the archive from Hadoop CLI to local;
+
+5. Cleanup the export folder from CLI HDFS and local file system;
+
+Kylin provide the "ExportHBaseData.java" (currently only exist in "minicluster" branch) for you to do the step 2-5 in one run; Please ensure the correct path of "kylin.properties" has been set in the sys env; This Java uses the sandbox config by default;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/howto/howto_contribute.md
----------------------------------------------------------------------
diff --git a/website/_docs/howto/howto_contribute.md b/website/_docs/howto/howto_contribute.md
new file mode 100644
index 0000000..2b94d76
--- /dev/null
+++ b/website/_docs/howto/howto_contribute.md
@@ -0,0 +1,20 @@
+---
+layout: docs
+title:  How to Contribute
+categories: howto
+permalink: /docs/howto/howto_contribute.html
+---
+
+## Making Changes
+* Raise an issue on JIRA, describe the feature/enhancement/bug
+* Discuss with others in mailing list or issue comments, make sure the proposed changes fit in with what others are doing and have planned for the project
+* Make changes in your fork
+* Write unit test if no existing cover your change
+* Generate patch and attach it to relative JIRA
+
+## Apply Patch
+* Committer will review in terms of correctness, performance, design, coding style, test coverage
+* Discuss and revise if necessary
+* Finally committer merge code into main branch
+
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/howto/howto_javascript.md
----------------------------------------------------------------------
diff --git a/website/_docs/howto/howto_javascript.md b/website/_docs/howto/howto_javascript.md
new file mode 100644
index 0000000..7c7f598
--- /dev/null
+++ b/website/_docs/howto/howto_javascript.md
@@ -0,0 +1,48 @@
+---
+layout: post
+title:  "How to consume Kylin REST API in javascript"
+categories: howto
+permalink: /docs/howto/howto_restapi.html
+---
+Kypin securicty authorization is based on basic access authorization, so when you want to use API in your javascript,you need to involve the authorization info in http headers.
+
+
+## Here is a demo show how to use Kylin Query API.
+{% highlight Groff markup %}
+$.ajaxSetup({
+      headers: { 'Authorization': "Basic eWFu**********X***ZA==", 'Content-Type': 'application/json;charset=utf-8' } // use your own authorization code here
+    });
+    var request = $.ajax({
+       url: "http://hostname/kylin/api/query",
+       type: "POST",
+       data: '{"sql":"select count(*) from SUMMARY;","offset":0,"limit":50000,"partial":true,"project":"test"}',
+       dataType: "json"
+    });
+    request.done(function( msg ) {
+       alert(msg);
+    }); 
+    request.fail(function( jqXHR, textStatus ) {
+       alert( "Request failed: " + textStatus );
+  });
+
+{% endhighlight %}
+
+
+For what is basic access authorization ,click here [http://en.wikipedia.org/wiki/Basic_access_authentication](http://en.wikipedia.org/wiki/Basic_access_authentication)
+
+## Keypoint:
+1. add basic access authorization info in heders.
+2. use right ajax type and right data synax
+
+How to generate your authorization code (download and import "jquery.base64.js" from [https://github.com/yckart/jquery.base64.js](https://github.com/yckart/jquery.base64.js))
+
+{% highlight Groff markup %}
+var authorizationCode = $.base64('encode', 'NT_USERNAME' + ":" + 'NT_PASSWORD');
+ 
+$.ajaxSetup({
+   headers: { 
+    'Authorization': "Basic " + authorizationCode, 
+    'Content-Type': 'application/json;charset=utf-8' 
+   }
+});
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/howto/howto_jdbc.md
----------------------------------------------------------------------
diff --git a/website/_docs/howto/howto_jdbc.md b/website/_docs/howto/howto_jdbc.md
new file mode 100644
index 0000000..425932c
--- /dev/null
+++ b/website/_docs/howto/howto_jdbc.md
@@ -0,0 +1,92 @@
+---
+layout: post
+title:  "How to use kylin remote jdbc driver"
+categories: howto
+permalink: /docs/howto/howto_jdbc.html
+---
+
+### Authentication
+
+###### Build on kylin authentication restful service. Supported parameters:
+* user : username 
+* password : password
+* ssl: true/false. Default be false; If true, all the services call will use https.
+
+### Connection URL format:
+{% highlight Groff markup %}
+jdbc:kylin://<hostname>:<port>/<kylin_project_name>
+{% endhighlight %}
+* If "ssl" = true, the "port" should be Kylin server's HTTPS port; 
+* If "port" is not specified, the driver will use default port: HTTP 80, HTTPS 443;
+* The "kylin_project_name" must be specified and user need ensure it exists in Kylin server;
+
+### 1. Query with Statement
+{% highlight Groff markup %}
+        Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
+
+        Properties info = new Properties();
+        info.put("user", "ADMIN");
+        info.put("password", "KYLIN");
+        Connection conn = driver.connect("jdbc:kylin://localhost:7070/kylin_project_name", info);
+        Statement state = conn.createStatement();
+        ResultSet resultSet = state.executeQuery("select * from test_table");
+
+        while (resultSet.next()) {
+            assertEquals("foo", resultSet.getString(1));
+            assertEquals("bar", resultSet.getString(2));
+            assertEquals("tool", resultSet.getString(3));
+        }
+{% endhighlight %}
+
+### 2. Query with PreparedStatement
+
+###### Supported prepared statement parameters:
+* setString
+* setInt
+* setShort
+* setLong
+* setFloat
+* setDouble
+* setBoolean
+* setByte
+* setDate
+* setTime
+* setTimestamp
+
+{% highlight Groff markup %}
+        Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
+        Properties info = new Properties();
+        info.put("user", "ADMIN");
+        info.put("password", "KYLIN");
+        Connection conn = driver.connect("jdbc:kylin://localhost:7070/kylin_project_name", info);
+        PreparedStatement state = conn.prepareStatement("select * from test_table where id=?");
+        state.setInt(1, 10);
+        ResultSet resultSet = state.executeQuery();
+
+        while (resultSet.next()) {
+            assertEquals("foo", resultSet.getString(1));
+            assertEquals("bar", resultSet.getString(2));
+            assertEquals("tool", resultSet.getString(3));
+        }
+{% endhighlight %}
+
+### 3. Get query result metadata
+Kylin jdbc driver supports metadata list methods:
+List catalog, schema, table and column with sql pattern filters(such as %).
+
+{% highlight Groff markup %}
+        Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
+        Properties info = new Properties();
+        info.put("user", "ADMIN");
+        info.put("password", "KYLIN");
+        Connection conn = driver.connect("jdbc:kylin://localhost:7070/kylin_project_name", info);
+        Statement state = conn.createStatement();
+        ResultSet resultSet = state.executeQuery("select * from test_table");
+
+        ResultSet tables = conn.getMetaData().getTables(null, null, "dummy", null);
+        while (tables.next()) {
+            for (int i = 0; i < 10; i++) {
+                assertEquals("dummy", tables.getString(i + 1));
+            }
+        }
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/howto/howto_package.md
----------------------------------------------------------------------
diff --git a/website/_docs/howto/howto_package.md b/website/_docs/howto/howto_package.md
new file mode 100644
index 0000000..d7946e0
--- /dev/null
+++ b/website/_docs/howto/howto_package.md
@@ -0,0 +1,6 @@
+###Build from source
+>     git clone https://github.com/KylinOLAP/Kylin.git   
+>     cd KylinOLAP/Kylin   
+>     sh script/package.sh
+
+In order to generate binary package, **maven** and **npm** are pre-requisites.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/howto/howto_release.md
----------------------------------------------------------------------
diff --git a/website/_docs/howto/howto_release.md b/website/_docs/howto/howto_release.md
new file mode 100644
index 0000000..0275929
--- /dev/null
+++ b/website/_docs/howto/howto_release.md
@@ -0,0 +1,449 @@
+---
+layout: post
+title:  "How to making a release"
+categories: howto
+permalink: /docs/howto/howto_release.html
+---
+
+_This guide is for Apache Kylin Committers only._  
+_Shell commands is on Mac OS X as sample._  
+_For people in China, please aware using proxy to avoid potential firewall issue._  
+
+# Setup Account  
+Make sure you have avaliable account and privlidge for following applications:
+
+* Apache account: [https://id.apache.org](https://id.apache.org/)    
+* Apache Kylin git repo (main cobe base): [https://git-wip-us.apache.org/repos/asf/incubator-kylin.git](https://git-wip-us.apache.org/repos/asf/incubator-kylin.git)  
+* Apache Kylin svn repo (for website only): [https://svn.apache.org/repos/asf/incubator/kylin](https://svn.apache.org/repos/asf/incubator/kylin)  
+* Apache Nexus (maven repo): [https://repository.apache.org](https://repository.apache.org)  
+* Apache Kylin dist repo: [https://dist.apache.org/repos/dist/dev/incubator/kylin](https://dist.apache.org/repos/dist/dev/incubator/kylin)  
+
+# Setup PGP signing keys  
+Follow instructions at [http://www.apache.org/dev/release-signing](http://www.apache.org/dev/release-signing) to create a key pair  
+Install gpg (On Mac OS X as sample):  
+`brew install gpg and gpg --gen-key`
+
+Generate gpg key:  
+Reference: [https://www.gnupg.org/gph/en/manual/c14.html](https://www.gnupg.org/gph/en/manual/c14.html)  
+_All new RSA keys generated should be at least 4096 bits. Do not generate new DSA keys_  
+`gpg --gen-key`  
+
+Verify your key:  
+`gpg --list-sigs YOUR_NAME`
+
+Then add your key to your apache account, for example:  
+[https://people.apache.org/keys/committer/lukehan.asc](https://people.apache.org/keys/committer/lukehan.asc)  
+Generate ASCII Amromed Key:  
+`gpg -a --export YOUR_MAIL_ADDRESS > YOUR_NAME.asc &`
+
+Upload key to public server:  
+`gpg --send-keys YOUR_KEY_HASH`
+
+or Submit key via web:  
+Open and Submit to [http://pool.sks-keyservers.net:11371](http://pool.sks-keyservers.net:11371) (you can pickup any avaliable public key server)  
+Once your key submitted to server, you can verify using following command:  
+`gpg --recv-keys YOUR_KEY_HASH`
+
+for example:  
+`gpg --recv-keys 027DC364`
+
+Add your public key to the KEYS file by following instructions in the KEYS file.:  
+_KEYS file location:_ __${incubator-kylin}/KEYS__  
+For example:  
+`(gpg --list-sigs YOURNAME && gpg --armor --export YOURNAME) >> KEYS`
+
+Commit your changes.
+
+# Prepare artifacts for release  
+__Before you start:__
+
+* Set up signing keys as described above.
+* Make sure you are using JDK 1.7 (not 1.8).
+* Make sure you are working on right release version number.
+* Make sure that every “resolved” JIRA case (including duplicates) has a fix version assigned.
+
+__Making a snapshot__  
+{% highlight bash %}
+# Set passphrase variable without putting it into shell history
+$ read -s GPG_PASSPHRASE
+
+# Make sure that there are no junk files in the sandbox
+$ git clean -xn
+$ mvn clean
+
+$ mvn -Papache-release -Dgpg.passphrase=${GPG_PASSPHRASE} install
+{% endhighlight %}
+When the dry-run has succeeded, change install to deploy.
+
+__Verify licenses__  
+Run Apache RAT to check licenses issue:  
+{% highlight bash %}
+mvn -Papache-release clean rat:rat
+{% endhighlight %}
+
+Fix license issue if any.
+
+__Making a release__
+
+Create a release branch named after the release, e.g. v0.7.2-release, and push it to Apache.  
+{% highlight bash %}
+$ git checkout -b vX.Y.Z-release
+$ git push -u origin vX.Y.Z-release
+{% endhighlight %}
+We will use the branch for the entire the release process. Meanwhile, we do not allow commits to the master branch. After the release is final, we can use `git merge --ff-only` to append the changes on the release branch onto the master branch. (Apache does not allow reverts to the master branch, which makes it difficult to clean up the kind of messy commits that inevitably happen while you are trying to finalize a release.)
+
+Now, set up your environment and do a dry run. The dry run will not commit any changes back to git and gives you the opportunity to verify that the release process will complete as expected.
+
+If any of the steps fail, clean up (see below), fix the problem, and start again from the top.  
+{% highlight bash %}
+# Set passphrase variable without putting it into shell history
+$ read -s GPG_PASSPHRASE
+
+# Make sure that there are no junk files in the sandbox
+$ git clean -xn
+$ mvn clean
+
+# Do a dry run of the release:prepare step, which sets version numbers.
+$ mvn -DdryRun=true -DskipTests -DreleaseVersion=X.Y.Z-incubating -DdevelopmentVersion=X.Y.Z+1-incubating-SNAPSHOT -Papache-release -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE}" release:prepare 2>&1 | tee /tmp/prepare-dry.log
+{% endhighlight %}
+
+__Check the artifacts:__
+
+* In the `target` directory should be these 8 files, among others:
+  * apache-kylin-X.Y.Z-incubating-src.tar.gz
+  * apache-kylin-X.Y.Z-incubating-src.tar.gz.asc
+  * apache-kylin-X.Y.Z-incubating-src.tar.gz.md5
+  * apache-kylin-X.Y.Z-incubating-src.tar.gz.sha1
+  * apache-kylin-X.Y.Z-incubating-src.zip
+  * apache-kylin-X.Y.Z-incubating-src.zip.asc
+  * apache-kylin-X.Y.Z-incubating-src.zip.md5
+  * apache-kylin-X.Y.Z-incubating-src.zip.sha1
+* Note that the file names start `apache-kylin-` and include
+  `incubating` in the version.
+* In the two source distros `.tar.gz` and `.zip`, check that all files belong to a directory called
+  `apache-kylin-X.Y.Z-incubating-src`.
+* That directory must contain files `DISCLAIMER`, `NOTICE`, `LICENSE`, `README.md`
+* Check PGP, per [this](https://httpd.apache.org/dev/verification.html)
+
+__Run real release:__
+Now, run the release for real.  
+{% highlight bash %}
+# Prepare sets the version numbers, creates a tag, and pushes it to git.
+$ mvn -DskipTests -Papache-release -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests" clean release:prepare
+
+# Perform checks out the tagged version, builds, and deploys to the staging repository
+$ mvn -DskipTests -Papache-release -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests" release:perform
+{% endhighlight %}
+
+__Verify the staged artifacts in the Nexus repository:__  
+* Go to [https://repository.apache.org/](https://repository.apache.org/) and login
+* Under `Build Promotion`, click `Staging Repositories`
+* In the `Staging Repositories` tab there should be a line with profile `org.apache.kylin`
+* Navigate through the artifact tree and make sure the .jar, .pom, .asc files are present
+* Check the box on in the first column of the row,
+  and press the 'Close' button to publish the repository at
+  https://repository.apache.org/content/repositories/orgapachekylin-1006
+  (or a similar URL)
+
+__Upload to staging area:__  
+Upload the artifacts via subversion to a staging area, https://dist.apache.org/repos/dist/dev/incubator/kylin/apache-kylin-X.Y.Z-incubating-rcN:
+{% highlight bash %}
+# Create a subversion workspace, if you haven't already
+$ mkdir -p ~/dist/dev
+$ pushd ~/dist/dev
+$ svn co https://dist.apache.org/repos/dist/dev/incubator/kylin
+$ popd
+
+# Move the files into a directory
+$ cd target
+$ mkdir ~/dist/dev/kylin/apache-kylin-X.Y.Z-incubating-rcN
+$ mv apache-kylin-* ~/dist/dev/kylin/apache-kylin-X.Y.Z-incubating-rcN
+
+# Check in
+$ cd ~/dist/dev/kylin
+$ svn add apache-kylin-X.Y.Z-incubating-rcN
+$ svn commit -m 'Upload release artifacts to staging'
+{% endhighlight %}
+
+__Cleaning up after a failed release attempt:__
+{% highlight bash %}
+# Make sure that the tag you are about to generate does not already
+# exist (due to a failed release attempt)
+$ git tag
+
+# If the tag exists, delete it locally and remotely
+$ git tag -d apache-kylin-X.Y.Z-incubating
+$ git push origin :refs/tags/apache-kylin-X.Y.Z-incubating
+
+# Remove modified files
+$ mvn release:clean
+
+# Check whether there are modified files and if so, go back to the
+# original git commit
+$ git status
+$ git reset --hard HEAD
+{% endhighlight %}
+
+# Validate a release
+{% highlight bash %}
+# Check that the signing key (e.g. 2AD3FAE3) is pushed
+$ gpg --recv-keys key
+
+# Check keys
+$ curl -O https://dist.apache.org/repos/dist/release/incubator/kylin/KEYS
+
+# Sign/check md5 and sha1 hashes
+# (Assumes your O/S has 'md5' and 'sha1' commands.)
+function checkHash() {
+  cd "$1"
+  for i in *.{zip,pom,gz}; do
+    if [ ! -f $i ]; then
+      continue
+    fi
+    if [ -f $i.md5 ]; then
+      if [ "$(cat $i.md5)" = "$(md5 -q $i)" ]; then
+        echo $i.md5 present and correct
+      else
+        echo $i.md5 does not match
+      fi
+    else
+      md5 -q $i > $i.md5
+      echo $i.md5 created
+    fi
+    if [ -f $i.sha1 ]; then
+      if [ "$(cat $i.sha1)" = "$(sha1 -q $i)" ]; then
+        echo $i.sha1 present and correct
+      else
+        echo $i.sha1 does not match
+      fi
+    else
+      sha1 -q $i > $i.sha1
+      echo $i.sha1 created
+    fi
+  done
+}
+$ checkHash apache-kylin-X.Y.Z-incubating-rcN
+{% endhighlight %}
+
+
+# Apache voting process  
+
+__Vote on Apache Kylin dev mailing list__  
+Release vote on dev list:  
+
+{% highlight text %}
+To: dev@kylin.incubator.apache.org
+Subject: [VOTE] Release apache-kylin-X.Y.Z-incubating (release candidate N)
+
+Hi all,
+
+I have created a build for Apache Kylin X.Y.Z-incubating, release candidate N.
+
+Changes highlights:
+...
+
+Thanks to everyone who has contributed to this release.
+Here’s release notes:
+https://github.com/apache/incubator-kylin/blob/XXX/docs/release_notes.md
+
+The commit to be voted upon:
+
+https://github.com/apache/incubator-kylin/commit/xxx
+
+Its hash is xxx.
+
+The artifacts to be voted on are located here:
+https://dist.apache.org/repos/dist/dev/incubator/kylin/apache-kylin-X.Y.Z-incubating-rcN/
+
+The hashes of the artifacts are as follows:
+src.zip.md5 xxx
+src.zip.sha1 xxx
+src.tar.gz.md5 xxx
+src.tar.gz.sha1 xxx
+
+A staged Maven repository is available for review at:
+https://repository.apache.org/content/repositories/orgapachekylin-XXXX/
+
+Release artifacts are signed with the following key:
+https://people.apache.org/keys/committer/lukehan.asc
+
+Please vote on releasing this package as Apache Kylin X.Y.Z-incubating.
+
+The vote is open for the next 72 hours and passes if a majority of
+at least three +1 PPMC votes are cast.
+
+[ ] +1 Release this package as Apache Kylin X.Y.Z-incubating
+[ ]  0 I don't feel strongly about it, but I'm okay with the release
+[ ] -1 Do not release this package because...
+
+
+Here is my vote:
+
++1 (binding)
+
+Luke
+
+{% endhighlight %}
+
+After vote finishes, send out the result:  
+{% highlight text %}
+Subject: [RESULT] [VOTE] Release apache-kylin-X.Y.Z-incubating (release candidate N)
+To: dev@kylin.incubator.apache.org
+
+Thanks to everyone who has tested the release candidate and given
+their comments and votes.
+
+The tally is as follows.
+
+N binding +1s:
+
+N non-binding +1s:
+
+No 0s or -1s.
+
+Therefore I am delighted to announce that the proposal to release
+Apache-Kylin-X.Y.Z-incubating has passed.
+
+I'll now start a vote on the general list. Those of you in the IPMC,
+please recast your vote on the new thread.
+
+Luke
+
+{% endhighlight %}
+
+__Vote on Apache incubator general mailing list__   
+Use the [Apache URL shortener](http://s.apache.org) to generate
+shortened URLs for the vote proposal and result emails. Examples:
+[http://s.apache.org/kylin-0.7.1-vote_rc3](http://s.apache.org/kylin-0.7.1-vote_rc3) and
+[http://s.apache.org/kylin-0.7.1-result_rc3](http://s.apache.org/kylin-0.7.1-result_rc3).
+
+{% highlight text %}
+To: general@incubator.apache.org
+Subject: [VOTE] Release Apache Kylin X.Y.Z (incubating)
+
+Hi all,
+
+The Apache Kylin community has voted on and approved a proposal to release
+Apache Kylin X.Y.Z (incubating).
+
+Proposal:
+http://s.apache.org/kylin-X.Y.Z-vote_rcN
+
+Vote result:
+N binding +1 votes
+N non-binding +1 votes
+No -1 votes
+http://s.apache.org/kylin-X.Y.Z-result_rcN
+
+
+The commit to be voted upon:
+https://github.com/apache/incubator-kylin/commit/XXX
+
+Its hash is XXX.
+
+The artifacts to be voted on are located here:
+https://dist.apache.org/repos/dist/dev/incubator/kylin/apache-kylin-X.Y.Z-incubating-rcN/
+
+The hashes of the artifacts are as follows:
+src.zip.md5 XXX
+src.zip.sha1 XXX
+src.tar.gz.md5 XXX
+src.tar.gz.sha1 XXX
+
+A staged Maven repository is available for review at:
+https://repository.apache.org/content/repositories/orgapachekylin-NNNN/
+
+Release artifacts are signed with the following key:
+https://people.apache.org/keys/committer/lukehan.asc
+
+Pursuant to the Releases section of the Incubation Policy and with
+the endorsement of our mentors we would now like to request
+the permission of the Incubator PMC to publish the release. The vote
+is open for 72 hours, or until the necessary number of votes (3 +1)
+is reached.
+
+[ ] +1 Release this package
+[ ]  0 I don't feel strongly about it, but I'm okay with the release
+[ ] -1 Do not release this package because...
+
+
+Luke Han, on behalf of Apache Kylin PPMC
+{% endhighlight %}
+
+After vote finishes, send out the result:
+{% highlight text %}
+To: general@incubator.apache.org
+Subject: [RESULT] [VOTE] Release Apache Kylin X.Y.Z (incubating)
+
+This vote passes with N +1s and no 0 or -1 votes:
+
++1 <name> (binding or no-binding)
+
+Thanks everyone. We’ll now roll the release out to the mirrors.
+
+Luke Han, on behalf of Apache Kylin PPMC
+{% endhighlight %}
+
+# Publishing a release  
+After a successful release vote, we need to push the release
+out to mirrors, and other tasks.
+
+In JIRA, search for
+[all issues resolved in this release](https://issues.apache.org/jira/issues/?jql=project%20%3D%20KYLIN%20),
+and do a bulk update changing their status to "Closed",
+with a change comment
+"Resolved in release X.Y.Z-incubating (YYYY-MM-DD)"
+(fill in release number and date appropriately).  
+__Uncheck "Send mail for this update".__
+
+Promote the staged nexus artifacts.
+
+* Go to [https://repository.apache.org/](https://repository.apache.org/) and login
+* Under "Build Promotion" click "Staging Repositories"
+* In the line with "orgapachekylin-xxxx", check the box
+* Press "Release" button
+
+Check the artifacts into svn.
+{% highlight bash %}
+# Get the release candidate.
+$ mkdir -p ~/dist/dev
+$ cd ~/dist/dev
+$ svn co https://dist.apache.org/repos/dist/dev/incubator/kylin
+
+# Copy the artifacts. Note that the copy does not have '-rcN' suffix.
+$ mkdir -p ~/dist/release
+$ cd ~/dist/release
+$ svn co https://dist.apache.org/repos/dist/release/incubator/kylin
+$ cd kylin
+$ cp -rp ../../dev/kylin/apache-kylin-X.Y.Z-incubating-rcN apache-kylin-X.Y.Z-incubating
+$ svn add apache-kylin-X.Y.Z-incubating
+
+# Check in.
+svn commit -m 'checkin release artifacts'
+{% endhighlight %}
+
+Svnpubsub will publish to
+[https://dist.apache.org/repos/dist/release/incubator/kylin](https://dist.apache.org/repos/dist/release/incubator/kylin) and propagate to
+[http://www.apache.org/dyn/closer.cgi/incubator/kylin](http://www.apache.org/dyn/closer.cgi/incubator/kylin) within 24 hours.
+
+If there are now more than 2 releases, clear out the oldest ones:
+
+{% highlight bash %}
+cd ~/dist/release/kylin
+svn rm apache-kylin-X.Y.Z-incubating
+svn commit -m 'Remove old release'
+{% endhighlight %}
+
+The old releases will remain available in the
+[release archive](http://archive.apache.org/dist/incubator/kylin/).
+
+
+
+Release same version in JIRA, check [Change Log](https://issues.apache.org/jira/browse/KYLIN/?selectedTab=com.atlassian.jira.jira-projects-plugin:changelog-panel) for the latest released version.
+
+# Publishing the web site
+_TBD_
+
+# Thanks  
+This guide drafted with reference from [Apache Calcite](http://calcite.incubator.apache.org) Howto doc, Thank you very much.
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/howto/howto_upgrade.md
----------------------------------------------------------------------
diff --git a/website/_docs/howto/howto_upgrade.md b/website/_docs/howto/howto_upgrade.md
new file mode 100644
index 0000000..badd135
--- /dev/null
+++ b/website/_docs/howto/howto_upgrade.md
@@ -0,0 +1,48 @@
+In v0.7, Kylin refactored the metadata structure, for the new features like inverted-index and streaming; If you have cube created with v0.6 and want to keep in v0.7, a migration is needed; (Please skip v0.7.1 as
+it has several compatible issues and the fix will be included in v0.7.2) Below is the steps;
+
+# Backup v0.6 metadata
+
+To avoid any data loss in the migration, a backup at the very beginning is always suggested; You can use HBase's backup or snapshot command to achieve this; Here is a sample with snapshot:
+
+    hbase shell
+    snapshot 'kylin_metadata', 'kylin_metadata_backup20150610'
+
+'kylin_metadata' is the default kylin metadata table name, replace it with the right table name of your Kylin;
+
+# Dump v0.6 metadata to local file
+
+This is also a backup method; As the migration tool is only tested with local file system, this step is must; All metadata need be downloaded, including snapshot, dictionary, etc;
+
+	hbase  org.apache.hadoop.util.RunJar  ${KYLIN_HOME}/lib/kylin-job-x.x.x-SNAPSHOT-job.jar  org.apache.kylin.common.persistence.ResourceTool  download  ./meta_dump
+
+(./meta_dump is the local folder that the metadata will be downloaded, change to name you preferred)
+
+# Run CubeMetadataUpgrade to migrate the metadata
+
+This step is to run the migration tool to parse the v0.6 metadata and then convert to v0.7 format; A verification will be performed in the last, and report error if some cube couldn't be migrated;
+
+    hbase  org.apache.hadoop.util.RunJar  ${KYLIN_HOME}/lib/kylin-job-x.x.x-SNAPSHOT-job.jar org.apache.kylin.job.CubeMetadataUpgrade ./meta_dump
+
+1. The tool will not overwrite v0.6 metadata; It will create a new folder with "_v2" suffix in the same folder, in this case the "./meta_dump_v2" will be created;
+2. By default this tool will only migrate the job history in last 30 days; If you want to keep elder job history, please tweak upgradeJobInstance() method by your own;
+3. If you see _No error or warning messages; The migration is success_ , that's good; Otherwise please check the error/warning messages carefully;
+4. For some problem you may need manually update the JSON file, to check whether the problem is gone, you can run a verify against the new metadata:
+
+    hbase  org.apache.hadoop.util.RunJar  ${KYLIN_HOME}/lib/kylin-job-x.x.x-SNAPSHOT-job.jar org.apache.kylin.job.CubeMetadataUpgrade ./meta_dump2 verify
+
+# Upload the new metadata to HBase
+
+Now the new format of metadata will be upload to the HBase to replace the old format; Stop Kylin, and then:
+
+	hbase  org.apache.hadoop.util.RunJar  ${KYLIN_HOME}/lib/kylin-job-x.x.x-SNAPSHOT-job.jar  org.apache.kylin.common.persistence.ResourceTool  reset
+	hbase  org.apache.hadoop.util.RunJar  ${KYLIN_HOME}/lib/kylin-job-x.x.x-SNAPSHOT-job.jar  org.apache.kylin.common.persistence.ResourceTool  upload  ./meta_dump_v2
+
+# Update HTables to use new coprocessor
+
+Kylin uses HBase coprocessor to do server side aggregation; When Kylin instance upgrades to V0.7, the HTables that created in V0.6 should also be updated to use the new coprocessor:
+
+    hbase  org.apache.hadoop.util.RunJar  ${KYLIN_HOME}/lib/kylin-job-x.x.x-SNAPSHOT-job.jar  org.apache.kylin.job.tools.DeployCoprocessorCLI ${KYLIN_HOME}/lib/kylin-coprocessor-x.x.x-SNAPSHOT.jar
+
+
+Done; Update your v0.7 Kylin configure to point to the same metadata HBase table, then start Kylin server; Check whether all cubes and other information are kept;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/index.cn.md
----------------------------------------------------------------------
diff --git a/website/_docs/index.cn.md b/website/_docs/index.cn.md
new file mode 100644
index 0000000..080279f
--- /dev/null
+++ b/website/_docs/index.cn.md
@@ -0,0 +1,54 @@
+---
+layout: docs-cn
+title: 概述
+categories: docs
+permalink: /cn/docs/index.html
+---
+
+欢迎来到 Apache Kylin
+------------  
+> Extreme OLAP Engine for Big Data
+
+Apache Kylin is an open source Distributed Analytics Engine, contributed by eBay Inc., provides SQL interface and multi-dimensional analysis (OLAP) on Hadoop supporting extremely large datasets.
+
+安装 
+------------  
+Please follow  installation & tutorial to start with Kylin.
+
+Advanced Topics
+-------  
+####Connectivity
+1.[How to use kylin remote jdbc driver](docs/Tutorial/How to use kylin remote jdbc driver.md)
+
+2.[SQL Reference](https://github.com/apache/incubator-calcite/blob/master/doc/reference.md)
+
+####REST
+
+1.[Kylin Restful API List](docs/REST/Kylin Restful API List.md)
+
+2.[Build Cube with Restful API](docs/REST/Build Cube with Restful API.md)
+
+3.[How to consume Kylin REST API in javascript](docs/REST/How to consume Kylin REST API in javascript.md)
+
+####Operations
+1.[Kylin Metadata Store](docs/Operations/Kylin Metadata Store.md)
+
+2.[Export Kylin HBase data](docs/Operations/Export Kylin HBase data.md)
+
+3.[Advanced settings of Kylin environment](docs/Operations/Advanced settings of Kylin environment.md)
+
+####Test
+
+1.[Run Kylin test case with HBase Mini Cluster](docs/Test/Run Kylin test case with HBase Mini Cluster.md)
+
+
+####Technial Details
+
+1.[New meta data model structure](docs/TechInside/New meta data model structure.md)
+
+2.[Job Engine Design](docs/JobEngine/Design.md)
+
+
+## Disclaimer
+
+Apache Kylin is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/index.md
----------------------------------------------------------------------
diff --git a/website/_docs/index.md b/website/_docs/index.md
new file mode 100644
index 0000000..dee95e7
--- /dev/null
+++ b/website/_docs/index.md
@@ -0,0 +1,55 @@
+---
+layout: docs
+title: Overview
+categories: docs
+permalink: /docs/index.html
+---
+
+Welcome to Apache Kylin
+------------  
+> Extreme OLAP Engine for Big Data
+
+Apache Kylin is an open source Distributed Analytics Engine, contributed by eBay Inc., provides SQL interface and multi-dimensional analysis (OLAP) on Hadoop supporting extremely large datasets.
+
+Installation 
+------------  
+Please follow  installation & tutorial to start with Kylin.
+
+Advanced Topics
+-------  
+####Connectivity
+1.[How to use kylin remote jdbc driver](docs/Tutorial/How to use kylin remote jdbc driver.md)
+
+2.[SQL Reference](https://github.com/apache/incubator-calcite/blob/master/doc/reference.md)
+
+####REST
+
+1.[Kylin Restful API List](docs/REST/Kylin Restful API List.md)
+
+2.[Build Cube with Restful API](docs/REST/Build Cube with Restful API.md)
+
+3.[How to consume Kylin REST API in javascript](docs/REST/How to consume Kylin REST API in javascript.md)
+
+####Operations
+1.[Kylin Metadata Store](docs/Operations/Kylin Metadata Store.md)
+
+2.[Export Kylin HBase data](docs/Operations/Export Kylin HBase data.md)
+
+3.[Advanced settings of Kylin environment](docs/Operations/Advanced settings of Kylin environment.md)
+
+####Test
+
+1.[Run Kylin test case with HBase Mini Cluster](docs/Test/Run Kylin test case with HBase Mini Cluster.md)
+
+
+####Technial Details
+
+1.[New meta data model structure](docs/TechInside/New meta data model structure.md)
+
+2.[Job Engine Design](docs/JobEngine/Design.md)
+
+
+## Disclaimer
+
+Apache Kylin is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/install/Advance-settings-of-Kylin-environment.md
----------------------------------------------------------------------
diff --git a/website/_docs/install/Advance-settings-of-Kylin-environment.md b/website/_docs/install/Advance-settings-of-Kylin-environment.md
new file mode 100644
index 0000000..f6390a7
--- /dev/null
+++ b/website/_docs/install/Advance-settings-of-Kylin-environment.md
@@ -0,0 +1,36 @@
+---
+layout: post
+title:  "Advance settings of Kylin environment"
+categories: install
+permalink: /docs/install/advance_settings.html
+---
+
+## Enabling LZO compression
+
+LZO compression can be leveraged to compress the output of MR jobs, as well as hbase table storage, reducing the storage overhead. By default we do not enable LZO compression in Kylin because hadoop sandbox venders tend to not include LZO in their distributions due to license(GPL) issues.
+
+To enable LZO in Kylin, there are three steps:
+
+### Make sure LZO is working in your environment
+
+we have a simple tool to test whether LZO is well installed and configured in your environment(we only test it on the hadoop CLI that you deployed Kylin), Just run
+
+{% highlight Groff markup %}
+hbase org.apache.hadoop.util.RunJar kylin-job-latest.jar com.kylinolap.job.tools.LZOSupportnessChecker
+{% endhighlight %}
+
+If the program prints "LZO supported by current env? true", you're good to go. Otherwise you'll need to first install LZO properly.
+
+### Modify kylin_job_conf.xml
+
+You'll need to stop Kylin first by running `./kylin.sh stop`, and then modify /etc/kylin/kylin_job_conf.xml by uncommenting some configuration entries related to LZO compression. 
+
+### export KYLIN_LD_LIBRARY_PATH to carry your native library paths
+
+Before running `./kylin.sh start` again, you'll need to export KYLIN_LD_LIBRARY_PATH to carry your LZO native library paths. If you are not sure where it is, you can simply find it in /tmp/kylin_retrieve.sh, Kylin retrieved this from hbase, normally this should work. Here's an example for hdp 2.1:
+
+{% highlight Groff markup %}
+export KYLIN_LD_LIBRARY_PATH=::/usr/lib/hadoop/lib/native/Linux-amd64-64:/usr/lib/hadoop/lib/native
+{% endhighlight %}
+
+After exporting, you need to run `./kylin.sh start` to start Kylin again. Now Kylin will use LZO to compress MR outputs and hbase tables.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/install/Off-Hadoop-CLI-Installation-(Dev-Env-Setup).md
----------------------------------------------------------------------
diff --git a/website/_docs/install/Off-Hadoop-CLI-Installation-(Dev-Env-Setup).md b/website/_docs/install/Off-Hadoop-CLI-Installation-(Dev-Env-Setup).md
new file mode 100644
index 0000000..911432d
--- /dev/null
+++ b/website/_docs/install/Off-Hadoop-CLI-Installation-(Dev-Env-Setup).md
@@ -0,0 +1,94 @@
+---
+layout: post
+title:  "Off Hadoop CLI Installation (Dev Env Setup)"
+categories: installation
+---
+
+Off-Hadoop-CLI installation is usually for **development use**.
+
+Developers want to run kylin test cases or applications at their development machine. The scenario is depicted at [https://github.com/KylinOLAP/Kylin#off-hadoop-cli-installation](https://github.com/KylinOLAP/Kylin#off-hadoop-cli-installation).
+
+
+By following this tutorial, you will be able to build kylin test cubes by running a specific test case, and you can further run other test cases against the cubes having been built.
+
+
+## Environment on the Hadoop CLI
+
+Off-Hadoop-CLI installation requires you having a hadoop CLI machine (or a hadoop sandbox) as well as your local develop machine. To make things easier we strongly recommend you starting with running Kylin on a hadoop sandbox, like <http://hortonworks.com/products/hortonworks-sandbox/>. In the following tutorial we'll go with **Hortonworks Sandbox 2.2**. 
+
+### Start Hadoop
+
+In Hortonworks sandbox, ambari helps to launch hadoop:
+
+{% highlight Groff markup %}
+	ambari-agent start
+	ambari-server start
+{% endhighlight %}
+	
+With both command successfully run you can go to ambari home page at <http://yoursandboxip:8080> (user:admin,password:admin) to check everything's status. By default ambari disables Hbase, you'll need manually start the `Hbase` service.
+
+For other hadoop distribution, basically start the hadoop cluster, make sure HDFS, YARN, Hive, HBase are running.
+
+
+## Environment on the dev machine
+
+
+### Install maven
+
+The latest maven can be found at <http://maven.apache.org/download.cgi>, we create a symbolic so that `mvn` can be run anywhere.
+
+{% highlight Groff markup %}
+	cd ~
+	wget http://xenia.sote.hu/ftp/mirrors/www.apache.org/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
+	tar -xzvf apache-maven-3.2.5-bin.tar.gz
+	ln -s /root/apache-maven-3.2.5/bin/mvn /usr/bin/mvn
+{% endhighlight %}
+
+### Compile
+
+First clone the Kylin project to your local:
+
+{% highlight Groff markup %}
+	git clone https://github.com/KylinOLAP/Kylin.git
+{% endhighlight %}
+	
+Install Kylin artifacts to the maven repo
+
+{% highlight Groff markup %}
+	mvn clean install -DskipTests
+{% endhighlight %}
+
+### Modify local configuration
+
+Local configuration must be modified to point to your hadoop sandbox (or CLI) machine. 
+
+* In **examples/test_case_data/sandbox/kylin.properties**
+   * Find `sandbox` and replace with your hadoop hosts (if you're using HDP sandbox, this can be skipped)
+   * Fine `kylin.job.run.as.remote.cmd` and change it to "true" (in code repository the default is false, which assume running it on hadoop CLI)
+   * Find `kylin.job.remote.cli.username` and `kylin.job.remote.cli.password`, fill in the user name and password used to login hadoop cluster for hadoop command execution; If you're using HDP sandbox, the default username is "root" and password is "hadoop".
+
+* In **examples/test_case_data/sandbox**
+   * For each configuration xml file, find all occurrence of `sandbox` and replace with your hadoop hosts; (if you're using HDP sandbox, this can be skipped)
+
+An alternative to the host replacement is updating your `hosts` file to resolve `sandbox` and `sandbox.hortonworks.com` to the IP of your sandbox machine.
+
+### Run unit tests
+
+Run a end-to-end cube building test
+ 
+{% highlight Groff markup %}
+	mvn test -Dtest=com.kylinolap.job.BuildCubeWithEngineTest -DfailIfNoTests=false
+{% endhighlight %}
+	
+Run other tests, the end-to-end cube building test is exclueded
+
+{% highlight Groff markup %}
+	mvn test
+{% endhighlight %}
+
+### Launch Kylin Web Server
+
+In your Eclipse IDE, launch `com.kylinolap.rest.DebugTomcat` with specifying VM arguments "-Dspring.profiles.active=sandbox". (By default Kylin server will listen on 7070 port; If you want to use another port, please specify it as a parameter when run `DebugTomcat)
+
+Check Kylin Web available at http://localhost:7070/kylin (user:ADMIN,password:KYLIN)
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/install/On-Hadoop-Kylin-installation-using-Docker.md
----------------------------------------------------------------------
diff --git a/website/_docs/install/On-Hadoop-Kylin-installation-using-Docker.md b/website/_docs/install/On-Hadoop-Kylin-installation-using-Docker.md
new file mode 100644
index 0000000..79e1680
--- /dev/null
+++ b/website/_docs/install/On-Hadoop-Kylin-installation-using-Docker.md
@@ -0,0 +1,42 @@
+---
+layout: post
+title:  "On Hadoop Kylin installation using Docker"
+categories: installation
+---
+
+With help of SequenceIQ, we have put together a fully automated method of creating a Kylin cluster (along with Hadoop, HBase and Hive). The only thing you will need to do is to pull the container from the official Docker repository by using the commands listed below:
+
+### Pre-Requisite
+
+1. Docker (If you don't have Docker installed, follow this [link](https://docs.docker.com/installation/#installation))
+2. Minimum RAM - 4Gb (We'll be running Kylin, Hadoop, HBase & Hive)
+
+### Installation
+{% highlight Groff markup %}
+docker pull sequenceiq/kylin
+{% endhighlight %}
+
+Once the container is pulled you are ready to start playing with Kylin. Get the following helper functions from our Kylin GitHub [repository](https://github.com/sequenceiq/docker-kylin/blob/master/ambari-functions) - _(make sure you source it)._
+
+{% highlight Groff markup %}
+ $ wget https://raw.githubusercontent.com/sequenceiq/docker-kylin/master/ambari-functions
+ $ source ambari-functions
+{% endhighlight %}
+{% highlight Groff markup %}
+ $ kylin-deploy-cluster 3
+{% endhighlight %}
+
+You can specify the number of nodes you'd like to have in your cluster (3 in this case). Once we installed all the necessary Hadoop
+services we'll build Kylin on top of it and then you can reach the UI on: 
+{% highlight Groff markup %}
+#Ambari Dashboard
+http://<container_ip>:8080
+{% endhighlight %}
+Use `admin/admin` to login. Make sure HBase is running. 
+
+{% highlight Groff markup %}
+#Kylin Dashboard
+http://<container_ip>:7070
+{% endhighlight %}
+The default credentials to login are: `ADMIN:KYLIN`. The cluster is pre-populated with sample data and is ready to build cubes as shown [here](https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Creation-Tutorial).
+  

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/install/hadoop_evn.md
----------------------------------------------------------------------
diff --git a/website/_docs/install/hadoop_evn.md b/website/_docs/install/hadoop_evn.md
new file mode 100644
index 0000000..264c6b0
--- /dev/null
+++ b/website/_docs/install/hadoop_evn.md
@@ -0,0 +1,37 @@
+---
+layout: docs
+title:  "Hadoop Environment"
+categories: install
+permalink: /docs/install/hadoop_env.html
+version: v0.7.2
+since: v0.7.1
+---
+
+>version: {{page.version}}, since {{page.since}}
+
+## Hadoop Environment
+
+Kylin requires you having access to a hadoop CLI, where you have full permissions to hdfs, hive, hbase and map-reduce. To make things easier we strongly recommend you starting with running Kylin on a hadoop sandbox, like <http://hortonworks.com/products/hortonworks-sandbox/>. In the following tutorial we'll go with **Hortonworks Sandbox 2.1** and **Cloudera QuickStart VM 5.1**. 
+
+To avoid permission issue, we suggest you using `root` account. The password for **Hortonworks Sandbox 2.1** is `hadoop` , for **Cloudera QuickStart VM 5.1** is `cloudera`.
+
+We also suggest you using bridged mode instead of NAT mode in your virtual box settings. Bridged mode will assign your sandbox an independent IP so that you can avoid issues like https://github.com/KylinOLAP/Kylin/issues/12
+
+### Start Hadoop
+
+Please make sure Hive, HDFS and HBase are available on our CLI machine.
+If you don't know how, here's a simple tutorial for hortonworks sanbox:
+
+Use ambari helps to launch hadoop:
+
+	ambari-agent start
+	ambari-server start
+	
+With both command successfully run you can go to ambari homepage at <http://your_sandbox_ip:8080> (user:admin,password:admin) to check everything's status. **By default hortonworks ambari disables Hbase, you'll need manually start the `Hbase` service at ambari homepage.**
+
+![start hbase in ambari](https://raw.githubusercontent.com/KylinOLAP/kylinolap.github.io/master/docs/installation/starthbase.png)
+
+**Additonal Info for setting up HortonWorks Sandbox on Virtual Box**
+
+	Please make sure Hbase Master port [Default 60000] and Zookeeper [Default 2181] is forwarded to Host OS.
+ 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/install/index.md
----------------------------------------------------------------------
diff --git a/website/_docs/install/index.md b/website/_docs/install/index.md
new file mode 100644
index 0000000..560ae4c
--- /dev/null
+++ b/website/_docs/install/index.md
@@ -0,0 +1,48 @@
+---
+layout: docs
+title:  "Installation Guide"
+categories: install
+permalink: /docs/install/index.html
+version: v0.7.2
+since: v0.7.1
+---
+
+>version: {{page.version}}, since {{page.since}}
+
+### Environment
+
+Kylin Rquires a properly setup hadoop environment to run. Following are the minium request to run Kylin, for more detial, please check this reference: [Hadoop Environment](hadoop_env.html).
+
+## Prerequisites on Hadoop
+
+* Hadoop: 2.4+
+* Hive: 0.13+
+* HBase: 0.98+
+* JDK: 1.7+  
+_Tested with Hortonworks HDP 2.2 and Cloudera Quickstart VM 5.1_
+
+
+On-Hadoop-CLI installation is the most common way of installing Kylin. It can be used for demo use, or for those who want to host their own web site to provide Kylin service. The scenario is depicted as:
+
+![On-Hadoop-CLI-installation](/images/install/on_cli_install_scene.png)
+
+For normal use cases, the application in the above picture means Kylin Web, which contains a web interface for cube building, querying and all sorts of management. Kylin Web launches a query engine for querying and a cube build engine for building cubes. These two engines interact with the components in Hadoop CLI, like hive and hbase.
+
+Except for some prerequisite software installations, the core of Kylin installation is accomplished by running a single script. After running the script, you will be able to build sample cube and query the tables behind the cubes via a unified web interface.
+
+### Install Kylin
+
+1. Download latest Kylin binaries at [http://kylin.incubator.apache.org/download](http://kylin.incubator.apache.org/download)
+2. export KYLIN_HOME pointing to the extracted Kylin folder
+3. Make sure the user has the privilege to run hadoop, hive and hbase cmd in shell. If you are not so sure, you can just run **bin/check-env.sh**, it will print out the detail information if you have some environment issues.
+4. To start Kylin, simply run **bin/kylin.sh start**
+5. To stop Kylin, simply run **bin/kylin.sh stop**
+
+> If you want to have multiple Kylin instances please refer to [this](kylin_cluster.html)
+
+After Kylin started you can visit <http://your_hostname:7070/kylin>. The username/password is ADMIN/KYLIN. It's a clean Kylin homepage with nothing in there. To start with you can:
+
+1. [Quick play with a sample cube](../tutorial/kylin_sample.html)
+2. [Create and Build your own cube](../tutorial/create_cube.html)
+3. [Kylin Web Tutorial](../tutorial/web.md)
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/install/kylin_cluster.md
----------------------------------------------------------------------
diff --git a/website/_docs/install/kylin_cluster.md b/website/_docs/install/kylin_cluster.md
new file mode 100644
index 0000000..bb6b4c5
--- /dev/null
+++ b/website/_docs/install/kylin_cluster.md
@@ -0,0 +1,20 @@
+---
+layout: docs
+title:  "Multiple Kylin REST servers"
+categories: install
+permalink: /docs/install/kylin_cluster.html
+version: v0.7.2
+since: v0.7.1
+---
+
+>version: {{page.version}}, since {{page.since}}
+
+### Multiple Kylin REST servers
+
+If you are running Kylin in a cluster or you have multiple Kylin REST server instances, please make sure you have the following property correctly configured in ${KYLIN_HOME}/conf/kylin.properties
+
+1. kylin.rest.servers 
+	List of web servers in use, this enables one web server instance to sync up with other servers.
+  
+2. kylin.server.mode
+	Make sure there is only one instance whose "kylin.server.mode" is set to "all" if there are multiple instances.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/install/manual_install_guide.cn.md
----------------------------------------------------------------------
diff --git a/website/_docs/install/manual_install_guide.cn.md b/website/_docs/install/manual_install_guide.cn.md
new file mode 100644
index 0000000..b79224c
--- /dev/null
+++ b/website/_docs/install/manual_install_guide.cn.md
@@ -0,0 +1,61 @@
+---
+layout: docs-cn
+title:  "手动安装指南"
+categories: 安装
+permalink: /cn/docs/install/manual_install_guide.html
+---
+
+## 引言
+
+在大多数情况下,我们的自动脚本[On-Hadoop-CLI-installation](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation)可以帮助你在你的hadoop sandbox甚至你的hadoop cluster中启动Kylin。但是,为防部署脚本出错,我们撰写本文作为参考指南来解决你的问题。
+
+基本上本文解释了自动脚本中的每一步骤。我们假设你已经对Linux上的Hadoop操作非常熟悉。
+
+## 前提条件
+* 已安装Tomcat,输出到CATALINA_HOME(with CATALINA_HOME exported)。([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-tomcat))
+* 已安装Maven,shell可访问`mvn`指令(with `mvn` command accessible at shell)。([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-maven)) 
+* 已安装Npm,shell可访问`npm`指令(with command `npm` accessible at shell)。([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-npm))
+* Kylin git repo克隆到一个文件夹,之后使用$KYLIN_HOME引用
+
+## 步骤
+
+### 1.从源代码构建kylin.war
+
+我们提供一个脚本($KYLIN_HOME/package.sh)来帮助你自动操作这个步骤。kylin.war由两部分组成:(看看package.sh可以更好地理解)
+
+* 一个REST服务器接收cube构建请求,查询请求等。这一部分是纯Java的,并由maven构建。
+* 一个基于angular(angular-based)的网页应用,这是一个用户看到的真实网站,并且它会调用上述REST服务器的REST API。这一部分是纯html+js的,并由npm构建。
+
+运行package.sh会构建上述两部分并将它们合并到单个kylin.war。
+
+### 2.自定义Kylin配置文件
+
+Kylin的配置文件包括一个kylin.properties和一个用于MR job设置的kylin_job_conf.xml。你可以在$KYLIN_HOME/examples/test_case_data/sandbox/找到这两个配置文件的模板。它们几乎可以直接使用,你唯一需要做的是将它们复制到一个配置文件夹(我们建议/etc/kylin,如果你选择不使用它,你将在之后出现"/etc/kylin"处使用你路径进行替换)并使用你服务器的实际主机名替换每个kylin.properties中的"sandbox"。
+
+当你发现你的cube的膨胀率过大,你将需要考虑通过修改kylin_job_conf.xml启用LZO压缩,查看[this chapter ](https://github.com/KylinOLAP/Kylin/wiki/Advance-settings-of-Kylin-environment#enabling-lzo-compression)探讨如何修改。测试cube(For test cubes)可以安全地忽略这一点。
+
+### 3. 准备tomcat
+* 复制 $KYLIN_HOME/server/target/kylin.war 到 $CATALINA_HOME/webapps/, 将Kylin.war的模式修改为644以防tomcat无法访问它。
+* tomcat默认使用端口8080与一些其他端口。但是,这些端口在许多hadoop sandbox中已经被占用了。例如,端口8080在hortonworks sandbox上被ambari使用。所以必要的话你需要修改端口。如果你对此不熟悉,你可以选择使用$KYLIN_HOME/deploy/server.xml覆盖$CATALINA_HOME/conf/server.xml。使用我们的server.xml,kylin会运行在端口7070.
+
+### 4. 准备Jars
+
+Kylin会需要使用两个jar包,两个jar包和配置在默认kylin.properties:(there two jars and configured in the default kylin.properties)
+
+####  kylin.job.jar=/tmp/kylin/kylin-job-latest.jar
+
+这是Kylin用于MR jobs的job jar包。你需要复制 $KYLIN_HOME/job/target/kylin-job-latest.jar 到 /tmp/kylin/
+
+#### kylin.coprocessor.local.jar=/tmp/kylin/kylin-coprocessor-latest.jar
+
+这是一个Kylin会放在hbase上的hbase协处理jar包。它用于提高性能。你需要复制 $KYLIN_HOME/storage/target/kylin-coprocessor-latest.jar 到 /tmp/kylin/
+
+### 5. 启动Kylin
+
+以`./kylin.sh start`
+
+启动Kylin
+
+并以`./Kylin.sh stop`
+
+停止Kylin

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/install/manual_install_guide.md
----------------------------------------------------------------------
diff --git a/website/_docs/install/manual_install_guide.md b/website/_docs/install/manual_install_guide.md
new file mode 100644
index 0000000..5fc90b7
--- /dev/null
+++ b/website/_docs/install/manual_install_guide.md
@@ -0,0 +1,61 @@
+---
+layout: post
+title:  "Manual Installation Guide"
+categories: installation
+permalink: /docs/install/manual_install_guide.html
+---
+
+## INTRODUCTION
+
+In most cases our automated script [On-Hadoop-CLI-installation](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation) can help you launch Kylin in your hadoop sandbox and even your hadoop cluster. However, in case something went wrong in the deploy script, this article comes as an reference guide to fix your issues.
+
+Basically this article explains every step in the automatic script. We assume that you are already very familiar with Hadoop operations on Linux. 
+
+## PREREQUISITES
+* Tomcat installed, with CATALINA_HOME exported. ([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-tomcat))
+* Maven installed, with `mvn` command accessible at shell. ([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-maven)) 
+* Npm installed, with command `npm` accessible at shell. ([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-npm))
+* Kylin git repo cloned to a folder later referenced as $KYLIN_HOME
+
+## STEPS
+
+### 1.Build kylin.war from source code
+
+We have provided a script( $KYLIN_HOME/package.sh ) to help you automate this step. The kylin.war composes of two parts: (Take a look at package.sh to better understand)
+
+* A REST server that accepts cube build requests, queries requests ,etc. This part is purely in Java, and is built by maven.
+* An angular-based web application, this is the real website users see, and it will call the REST APIs in the above REST server. This part is purely html+js, and is built by npm.
+
+Running package.sh will build both parts and combine them to a single kylin.war.
+
+### 2.Customize kylin configuration files 
+
+Kylin's configuration file includes a kylin.properties and a kylin_job_conf.xml for MR job settings. You can find a template for these two configuration files in $KYLIN_HOME/examples/test_case_data/sandbox/. They're almost ready to use, the only thing you need to do is copy them to a configuration folder(we suggest /etc/kylin, if you choose not to use it, you'll replace the "/etc/kylin" with yours in later occurrence) and replace every "sandbox" in kylin.properties with the real hostname of your server.
+
+When you find you cubes's expansion rate too large, you'll need to consider enabling LZO compression by modifying kylin_job_conf.xml, checkout [this chapter ](https://github.com/KylinOLAP/Kylin/wiki/Advance-settings-of-Kylin-environment#enabling-lzo-compression) to find how. For test cubes you can safely ignore this.
+
+### 3. Prepare tomcat
+* Copy $KYLIN_HOME/server/target/kylin.war to $CATALINA_HOME/webapps/, change kylin.war's mode to 644 in case tomcat have no access to it.
+* By default tomcat uses port 8080 as well as several other ports. However, these ports are already occupied in many hadoop sandboxes. For example, port 8080 is used by ambari on hortonworks sandbox. So you need to modify port if necessary. If you're not familiar with this, you can choose to overwrite $CATALINA_HOME/conf/server.xml with $KYLIN_HOME/deploy/server.xml. With our server.xml, kylin will run on port 7070.
+
+### 4. Prepare Jars
+
+There are two jars that Kylin will need to use, there two jars and configured in the default kylin.properties:
+
+####  kylin.job.jar=/tmp/kylin/kylin-job-latest.jar
+
+This is job jar that Kylin uses for MR jobs. You need to copy $KYLIN_HOME/job/target/kylin-job-latest.jar to /tmp/kylin/
+
+#### kylin.coprocessor.local.jar=/tmp/kylin/kylin-coprocessor-latest.jar
+
+This is a hbase coprocessor jar that Kylin will put on hbase. It is used for performance boosting. You need to copy $KYLIN_HOME/storage/target/kylin-coprocessor-latest.jar to /tmp/kylin/
+
+### 5. Start Kylin
+
+Start Kylin with
+
+`./kylin.sh start`
+
+and stop Kylin with
+
+`./Kylin.sh stop`

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/tech/Class_Diagram.png
----------------------------------------------------------------------
diff --git a/website/_docs/tech/Class_Diagram.png b/website/_docs/tech/Class_Diagram.png
new file mode 100644
index 0000000..4f1beef
Binary files /dev/null and b/website/_docs/tech/Class_Diagram.png differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/tech/Design.md
----------------------------------------------------------------------
diff --git a/website/_docs/tech/Design.md b/website/_docs/tech/Design.md
new file mode 100644
index 0000000..59b9ebe
--- /dev/null
+++ b/website/_docs/tech/Design.md
@@ -0,0 +1,37 @@
+## Job Engine Design
+
+> Purpose: The **Job Engine** is a coordinator which manage the tasks' life cycle and CRUD of the tasks. To be clearified, the **Job Engine** does not run the task itself, instead the task runs on hadoop(or whatever it depends).
+
+### Executable
+
+![Class Diagram](Class_Diagram.png)
+
+**Executable** is a top-level interface for all kinds of jobs or tasks.
+
+**AbstractExecutable** is a abstract implementation of **Executable**, it provides:
+
+ 1. some getter and setter method
+ 2. default implementation of **Executable**.execute()
+ 3. life cycle method of an **Executable** and their default implementation
+
+**DefaultChainedExecutable** is an implementation of AbstractExecutable which contains a group of **Executable**
+
+### ExecutableManager
+**ExecutableManager** provide the CRUD function for an **Executable**
+
+### ExecutableDao
+**ExecutableDao** provide the access of the persistent object for Executable
+
+There are two persistent object for one **Executable**
+
+1. **ExecutablePO** is to store the runnning parameters for the **Executable**, and once the **Executable** is submitted, **ExecutablePO** is unmodifiable.
+2. **ExecutableOutputPO** is to store the running result for the **Executable**, for instance the current state, error log.
+
+### DefaultScheduler
+**DefaultScheduler** is a coordinator for **Executable**s.
+
+There is a daemon thread call JobFetcher running periodically. It is responsible for scheduling the **Executable**s
+
+    Note: there should always be only one instance running in the cluster. And it is configured using "kylin.server.mode" in the "kylin.properties", there are two modes "all" & "query", "all" means it will defaultly start the scheduler. So if there are multiple kylin instances, make sure there is only one instance whose "kylin.server.mode" is set to "all".
+
+    
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/tech/Kylin 0.7 Lambda Architecture.md
----------------------------------------------------------------------
diff --git a/website/_docs/tech/Kylin 0.7 Lambda Architecture.md b/website/_docs/tech/Kylin 0.7 Lambda Architecture.md
new file mode 100644
index 0000000..9ee40bc
--- /dev/null
+++ b/website/_docs/tech/Kylin 0.7 Lambda Architecture.md	
@@ -0,0 +1,12 @@
+Kylin 0.7 Lambda Architecture
+===
+
+Start from 0.7, Kylin adopts a [Lambda Architecture](http://en.wikipedia.org/wiki/Lambda_architecture) to support near real-time analysis from streaming input.
+
+* Data is separated into Young and Aged.
+* The young generation is batch loaded from streaming (e.g. every minute) and saved in a real-time storage with inverted index.
+* Aged generation is batch loaded from real-time storage to historic storage daily or hourly. Aged generation is stored as OLAP cube with pre-calculation.
+* A hybrid storage interface sits on top of the real-time and historic storage, and provides a view of complete data set for SQL queries.
+* The combination of inverted index and OLAP cube enables subsecond query latencies on near real-time data with huge history.
+
+![Kylin 0.7 Lambda Architecture](Kylin_0.7_Lambda_Architecture.png)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/tech/Kylin_0.7_Lambda_Architecture.png
----------------------------------------------------------------------
diff --git a/website/_docs/tech/Kylin_0.7_Lambda_Architecture.png b/website/_docs/tech/Kylin_0.7_Lambda_Architecture.png
new file mode 100644
index 0000000..7adb099
Binary files /dev/null and b/website/_docs/tech/Kylin_0.7_Lambda_Architecture.png differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/tech/New meta data model structure.md
----------------------------------------------------------------------
diff --git a/website/_docs/tech/New meta data model structure.md b/website/_docs/tech/New meta data model structure.md
new file mode 100644
index 0000000..74fc74b
--- /dev/null
+++ b/website/_docs/tech/New meta data model structure.md	
@@ -0,0 +1,18 @@
+#New meta data model structure
+Kylin is doing a round code refactor which will introduce the following two changes on meta data:
+
+* Abstract a "model_desc" layer from "cube_desc"
+
+Before define a cube, user will need firstly define a model ("model_desc"); The model defines which is the fact table, which are lookup tables and how they be joined;
+
+With the model be defined, when user define a cube ("cube_desc"), he/she only need to specify the table/column name for a dimension, as the join conditions have already been defined;
+
+This abstraction is to extend the meta data to fulfill non-cube queries (coming soon);
+
+* Support data tables from multiple hive databases;
+
+User has the case that tables are from multiple hive database, and the table name might be the same; To support this case Kylin will use the database name + table name as the unique name for tables; And user need to specify the database name (if it is not "default") in SQL when query Kylin. 
+
+Here is a sample; the fact table "test_kylin_fact" is from default hive database, you don't need to specify the db name; while lookup table is from "edw", you need use "edw.test_cal_dt" in the query:
+
+	select test_cal_dt.Week_Beg_Dt, sum(price) as c1, count(1) as c2 from test_kylin_fact inner JOIN edw.test_cal_dt as test_cal_dt ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt  where test_kylin_fact.lstg_format_name='ABIN' 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/tutorial/acl.cn.md
----------------------------------------------------------------------
diff --git a/website/_docs/tutorial/acl.cn.md b/website/_docs/tutorial/acl.cn.md
new file mode 100644
index 0000000..980e199
--- /dev/null
+++ b/website/_docs/tutorial/acl.cn.md
@@ -0,0 +1,31 @@
+---
+layout: post-cn
+title:  "Kylin Cube 权限授予教程"
+categories: 教程
+permalink: /cn/docs/tutorial/acl.html
+---
+
+在`Cubes`页面,双击cube行查看详细信息。在这里我们关注`Access`标签。
+点击`+Grant`按钮进行授权。
+
+![]( /images/Kylin-Cube-Permission-Grant-Tutorial/14 +grant.png)
+
+一个cube有四种不同的权限。将你的鼠标移动到`?`图标查看详细信息。
+
+![]( /images/Kylin-Cube-Permission-Grant-Tutorial/15 grantInfo.png)
+
+授权对象也有两种:`User`和`Role`。`Role`是指一组拥有同样权限的用户。
+
+### 1. 授予用户权限
+* 选择`User`类型,输入你想要授权的用户的用户名并选择相应的权限。
+
+     ![]( /images/Kylin-Cube-Permission-Grant-Tutorial/16 grant-user.png)
+
+* 然后点击`Grant`按钮提交请求。在这一操作成功后,你会在表中看到一个新的表项。你可以选择不同的访问权限来修改用户权限。点击`Revoke`按钮可以删除一个拥有权限的用户。
+
+     ![]( /images/Kylin-Cube-Permission-Grant-Tutorial/16 user-update.png)
+
+### 2. 授予角色权限
+* 选择`Role`类型,通过点击下拉按钮选择你想要授权的一组用户并选择一个权限。
+
+* 然后点击`Grant`按钮提交请求。在这一操作成功后,你会在表中看到一个新的表项。你可以选择不同的访问权限来修改组权限。点击`Revoke`按钮可以删除一个拥有权限的组。

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/tutorial/acl.md
----------------------------------------------------------------------
diff --git a/website/_docs/tutorial/acl.md b/website/_docs/tutorial/acl.md
new file mode 100644
index 0000000..3191c32
--- /dev/null
+++ b/website/_docs/tutorial/acl.md
@@ -0,0 +1,31 @@
+---
+layout: post
+title:  "Kylin Cube Permission Grant Tutorial"
+categories: tutorial
+permalink: /docs/tutorial/acl.html
+---
+
+In `Cubes` page, double click the cube row to see the detail information. Here we focus on the `Access` tab.
+Click the `+Grant` button to grant permission. 
+
+![](/images/Kylin-Cube-Permission-Grant-Tutorial/14 +grant.png)
+
+There are four different kinds of permissions for a cube. Move your mouse over the `?` icon to see detail information. 
+
+![](/images/Kylin-Cube-Permission-Grant-Tutorial/15 grantInfo.png)
+
+There are also two types of user that a permission can be granted: `User` and `Role`. `Role` means a group of users who have the same role.
+
+### 1. Grant User Permission
+* Select `User` type, enter the username of the user you want to grant and select the related permission. 
+
+     ![](/images/Kylin-Cube-Permission-Grant-Tutorial/16 grant-user.png)
+
+* Then click the `Grant` button to send a request. After the success of this operation, you will see a new table entry show in the table. You can select various permission of access to change the permission of a user. To delete a user with permission, just click the `Revoke` button.
+
+     ![](/images/Kylin-Cube-Permission-Grant-Tutorial/16 user-update.png)
+
+### 2. Grant Role Permission
+* Select `Role` type, choose a group of users that you want to grant by click the drop down button and select a permission.
+
+* Then click the `Grant` button to send a request. After the success of this operation, you will see a new table entry show in the table. You can select various permission of access to change the permission of a group. To delete a group with permission, just click the `Revoke` button.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/b37a7809/website/_docs/tutorial/create_cube.cn.md
----------------------------------------------------------------------
diff --git a/website/_docs/tutorial/create_cube.cn.md b/website/_docs/tutorial/create_cube.cn.md
new file mode 100644
index 0000000..c881e63
--- /dev/null
+++ b/website/_docs/tutorial/create_cube.cn.md
@@ -0,0 +1,126 @@
+---
+layout: post-cn
+title:  "Kylin Cube 创建教程"
+categories: 教程
+permalink: /cn/docs/tutorial/create_cube.html
+---
+
+### I. 新建一个项目
+1. 由顶部菜单栏进入`Query`页面,然后点击`Manage Projects`。
+
+   ![](/images/Kylin-Cube-Creation-Tutorial/1 manage-prject.png)
+
+2. 点击`+ Project`按钮添加一个新的项目。
+
+   ![](/images/Kylin-Cube-Creation-Tutorial/2 %2Bproject.png)
+
+3. 填写下列表单并点击`submit`按钮提交请求。
+
+   ![](/images/Kylin-Cube-Creation-Tutorial/3 new-project.png)
+
+4. 成功后,底部会显示通知。
+
+   ![](/images/Kylin-Cube-Creation-Tutorial/3.1 pj-created.png)
+
+### II. 同步一张表
+1. 在顶部菜单栏点击`Tables`,然后点击`+ Sync`按钮加载hive表元数据。
+
+   ![](/images/Kylin-Cube-Creation-Tutorial/4 %2Btable.png)
+
+2. 输入表名并点击`Sync`按钮提交请求。
+
+   ![](/images/Kylin-Cube-Creation-Tutorial/5 hive-table.png)
+
+### III. 新建一个cube
+首先,在顶部菜单栏点击`Cubes`。然后点击`+Cube`按钮进入cube designer页面。
+
+![](/images/Kylin-Cube-Creation-Tutorial/6 %2Bcube.png)
+
+**步骤1. Cube信息**
+
+填写cube基本信息。点击`Next`进入下一步。
+
+你可以使用字母、数字和“_”来为你的cube命名(注意名字中不能使用空格)。
+
+![](/images/Kylin-Cube-Creation-Tutorial/7 cube-info.png)
+
+**步骤2. 维度**
+
+1. 建立事实表。
+
+    ![](/images/Kylin-Cube-Creation-Tutorial/8 dim-factable.png)
+
+2. 点击`+Dimension`按钮添加一个新的维度。
+
+    ![](/images/Kylin-Cube-Creation-Tutorial/8 dim-%2Bdim.png)
+
+3. 可以选择不同类型的维度加入一个cube。我们在这里列出其中一部分供你参考。
+
+    * 从事实表获取维度。
+          ![](/images/Kylin-Cube-Creation-Tutorial/8 dim-typeA.png)
+
+    * 从查找表获取维度。
+        ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-typeB-1.png)
+
+        ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-typeB-2.png)
+   
+    * 从有分级结构的查找表获取维度。
+          ![](/images/Kylin-Cube-Creation-Tutorial/8 dim-typeC.png)
+
+    * 从有衍生维度(derived dimensions)的查找表获取维度。
+          ![](/images/Kylin-Cube-Creation-Tutorial/8 dim-typeD.png)
+
+4. 用户可以在保存维度后进行编辑。
+   ![](/images/Kylin-Cube-Creation-Tutorial/8 dim-edit.png)
+
+**步骤3. 度量**
+
+1. 点击`+Measure`按钮添加一个新的度量。
+   ![](/images/Kylin-Cube-Creation-Tutorial/9 meas-%2Bmeas.png)
+
+2. 根据它的表达式共有5种不同类型的度量:`SUM`、`MAX`、`MIN`、`COUNT`和`COUNT_DISTINCT`。请谨慎选择返回类型,它与`COUNT(DISTINCT)`的误差率相关。
+   * SUM
+
+     ![](/images/Kylin-Cube-Creation-Tutorial/9 meas-sum.png)
+
+   * MIN
+
+     ![](/images/Kylin-Cube-Creation-Tutorial/9 meas-min.png)
+
+   * MAX
+
+     ![](/images/Kylin-Cube-Creation-Tutorial/9 meas-max.png)
+
+   * COUNT
+
+     ![](/images/Kylin-Cube-Creation-Tutorial/9 meas-count.png)
+
+   * DISTINCT_COUNT
+
+     ![](/images/Kylin-Cube-Creation-Tutorial/9 meas-distinct.png)
+
+**步骤4. 过滤器**
+
+这一步骤是可选的。你可以使用`SQL`格式添加一些条件过滤器。
+
+![](/images/Kylin-Cube-Creation-Tutorial/10 filter.png)
+
+**步骤5. 更新设置**
+
+这一步骤是为增量构建cube而设计的。
+
+![](/images/Kylin-Cube-Creation-Tutorial/11 refresh-setting1.png)
+
+选择分区类型、分区列和开始日期。
+
+![](/images/Kylin-Cube-Creation-Tutorial/11 refresh-setting2.png)
+
+**步骤6. 高级设置**
+
+![](/images/Kylin-Cube-Creation-Tutorial/12 advanced.png)
+
+**步骤7. 概览 & 保存**
+
+你可以概览你的cube并返回之前的步骤进行修改。点击`Save`按钮完成cube创建。
+
+![](/images/Kylin-Cube-Creation-Tutorial/13 overview.png)