Added: kylin/site/docs2/howto/howto_upgrade.html URL: http://svn.apache.org/viewvc/kylin/site/docs2/howto/howto_upgrade.html?rev=1730835&view=auto ============================================================================== --- kylin/site/docs2/howto/howto_upgrade.html (added) +++ kylin/site/docs2/howto/howto_upgrade.html Wed Feb 17 13:48:54 2016 @@ -0,0 +1,1814 @@ +<!-- +* 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. +--> + +<!doctype html> +<html> + <!-- +* 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. +--> + +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Apache Kylin | How to Upgrade</title> + <meta name="description" content="Apache Kylin Home"> + <meta name="author" content="Apache Kylin"> + <link rel="shortcut icon" href="fav.png" type="image/png"> + + + +<link rel="stylesheet" href="/assets/css/animate.css"> +<!-- Bootstrap --> +<link rel="stylesheet" href="/assets/css/bootstrap.min.css"> + +<!-- Fonts --> +<!-- <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Alice|Open+Sans:400,300,700"> --> + +<!-- Icons --> +<link rel="stylesheet" href="/assets/css/font-awesome.min.css"> + + <!-- Custom styles --> + <link rel="stylesheet" href="/assets/css/styles.css"> + <link rel="stylesheet" href="/assets/css/docs.css"> + <link rel="stylesheet" href="/assets/css/pygments.css"> + + <link rel="canonical" href="http://kylin.apache.org/docs2/howto/howto_upgrade.html"> + <link rel="alternate" type="application/rss+xml" title="Apache Kylin" href="http://kylin.apache.org/feed.xml" /> + +<!--[if lt IE 9]> <script src="assets/js/html5shiv.js"></script> <![endif]--> +<script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + //oringal tracker for kylin.io + ga('create', 'UA-55534813-1', 'auto'); + //new tracker for kylin.apache.org + ga('create', 'UA-55534813-2', 'auto', {'name':'toplevel'}); + + ga('send', 'pageview'); + ga('toplevel.send', 'pageview'); + + +</script> +<script type="text/javascript" src="/assets/js/jquery-1.9.1.min.js"></script> +<script type="text/javascript" src="/assets/js/nside.js"></script> </script> +<script type="text/javascript" src="/assets/js/nnav.js"></script> </script> +</head> + + <body> + <!-- +* 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. +--> + +<header id="header" > + + <div id="head" class="parallax" parallax-speed="3" > + <div id="logo" class="text-center"> <img class="img-circle" id="circlelogo" src="/assets/images/kylin_logo.jpg"> <span class="title" >Apache Kylinâ¢</span> <span class="tagline">Extreme OLAP Engine for Big Data</span> + </div> + </div> + + + <!-- Main Menu --> + <nav class="navbar navbar-default" role="navigation" id="nav-wrapper"> + <div class="container-fluid" id="nav"> + <!-- + <img class="img-circle" width="40px" height="40px" id="circlelogo" src="/assets/images/kylin_logo.jpg"> + --> + <!-- Brand and toggle get grouped for better mobile display --> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> + <ul class="nav navbar-nav"> + <li><a href="/">Home</a></li> + <li><a href="/docs" >Docs</a></li> + <li><a href="/download">Download</li> + <li><a href="/community" >Community</a></li> + <li><a href="/development" >Development</a></li> + <li><a href="/blog">Blog</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> + <li><a href="https://github.com/apache/kylin" target="_blank" class="fa fa-github-alt fa-lg" title="Github: apache/kylin" ></a></li> + <li><a href="https://www.facebook.com/kylinio" target="_blank" class="fa fa-facebook fa-lg" title="Facebook: kylin.io" ></a></li> + </ul> + </div><!-- /.navbar-collapse --> + </div><!-- /.container-fluid --> +</nav> + </header> + + + <div class="container"> + <div class="row"> + <!-- +* 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. +--> + +<div class="col-md-3 col-lg-3 col-xs-4 aside1 visible-md visible-lg" id="nside1" style=" padding-top: 2em"> + <ul class="nav nav-pills nav-stacked"> + + <li><a href="#titleGetting Started" data-toggle="collapse" id="navtitle">Getting Started</a></li> + <div class="collapse in"> + <div class="list-group" id="list1"> + <ul style="list-style-type:disc"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/index.html" class="list-group-item-lay pjaxlink" id="navlist">Overview</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/release_notes.html" class="list-group-item-lay pjaxlink" id="navlist">Apache Kylin⢠Release Notes</a></li> + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/gettingstarted/faq.html" class="list-group-item-lay pjaxlink" id="navlist">FAQ</a></li> + + + + + + + + + + + + + + + + + + <li><a href="/docs2/gettingstarted/events.html" class="list-group-item-lay pjaxlink" id="navlist">Events and Conferences</a></li> + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/gettingstarted/terminology.html" class="list-group-item-lay pjaxlink" id="navlist">Terminology</a></li> + + + + + + + + + + + + + + + + <li><a href="/docs2/gettingstarted/concepts.html" class="list-group-item-lay pjaxlink" id="navlist">Technical Concepts</a></li> + + + + + + + + + <ul> + </div> +</div> + + <li><a href="#titleInstallation" data-toggle="collapse" id="navtitle">Installation</a></li> + <div class="collapse in"> + <div class="list-group" id="list1"> + <ul style="list-style-type:disc"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/install/index.html" class="list-group-item-lay pjaxlink" id="navlist">Installation Guide</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/install/hadoop_env.html" class="list-group-item-lay pjaxlink" id="navlist">Hadoop Environment</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/install/manual_install_guide.html" class="list-group-item-lay pjaxlink" id="navlist">Manual Installation Guide</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/install/kylin_cluster.html" class="list-group-item-lay pjaxlink" id="navlist">Multiple Kylin REST servers</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/install/advance_settings.html" class="list-group-item-lay pjaxlink" id="navlist">Advance Settings of Kylin Environment</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/install/kylin_docker.html" class="list-group-item-lay pjaxlink" id="navlist">On Hadoop Kylin installation using Docker</a></li> + + + + + + + + + <ul> + </div> +</div> + + <li><a href="#titleTutorial" data-toggle="collapse" id="navtitle">Tutorial</a></li> + <div class="collapse in"> + <div class="list-group" id="list1"> + <ul style="list-style-type:disc"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/kylin_sample.html" class="list-group-item-lay pjaxlink" id="navlist">Quick Start with Sample Cube</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/create_cube.html" class="list-group-item-lay pjaxlink" id="navlist">Kylin Cube Creation Tutorial</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/cube_build_job.html" class="list-group-item-lay pjaxlink" id="navlist">Kylin Cube Build and Job Monitoring Tutorial</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/acl.html" class="list-group-item-lay pjaxlink" id="navlist">Kylin Cube Permission Grant Tutorial</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/web.html" class="list-group-item-lay pjaxlink" id="navlist">Kylin Web Tutorial</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/tableau.html" class="list-group-item-lay pjaxlink" id="navlist">Tableau Tutorial</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/tableau_91.html" class="list-group-item-lay pjaxlink" id="navlist">Tableau 9 Tutorial</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/powerbi.html" class="list-group-item-lay pjaxlink" id="navlist">MS Excel and Power BI Tutorial</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/tutorial/odbc.html" class="list-group-item-lay pjaxlink" id="navlist">Kylin ODBC Driver Tutorial</a></li> + + + + + + + + + <ul> + </div> +</div> + + <li><a href="#titleHow To" data-toggle="collapse" id="navtitle">How To</a></li> + <div class="collapse in"> + <div class="list-group" id="list1"> + <ul style="list-style-type:disc"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_build_cube_with_restapi.html" class="list-group-item-lay pjaxlink" id="navlist">How to Build Cube with Restful API</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_use_restapi_in_js.html" class="list-group-item-lay pjaxlink" id="navlist">How to Use Restful API in Javascript</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_use_restapi.html" class="list-group-item-lay pjaxlink" id="navlist">How to Use Restful API</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_optimize_cubes.html" class="list-group-item-lay pjaxlink" id="navlist">How to Optimize Cubes</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_backup_metadata.html" class="list-group-item-lay pjaxlink" id="navlist">How to Backup Metadata</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_cleanup_storage.html" class="list-group-item-lay pjaxlink" id="navlist">How to Cleanup Storage (HDFS & HBase Tables)</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_jdbc.html" class="list-group-item-lay pjaxlink" id="navlist">How to Use kylin Remote JDBC Driver</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_upgrade.html" class="list-group-item-lay pjaxlink" id="navlist">How to Upgrade</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li><a href="/docs2/howto/howto_ldap_and_sso.html" class="list-group-item-lay pjaxlink" id="navlist">How to Enable Security with LDAP and SSO</a></li> + + + + + + + + + <ul> + </div> +</div> + + + </ul> +</div> + + <div class="col-md-9 col-lg-9 col-xs-14 aside2"> + <div id="container"> + <div id="pjax"> + <h1 class="post-title">How to Upgrade</h1> + + <p>version: v1.2, since: v0.7.1</p> + + <article class="post-content" > + <h2 id="upgrade-among-v07x-and-v1x">Upgrade among v0.7.x and v1.x</h2> + +<p>From v0.7.1 to latest v1.2, Kylinâs metadata is backward compatible, the upgrade can be finished in couple of minutes:</p> + +<h4 id="backup-metadata">1. Backup metadata</h4> +<p>Backup the Kylin metadata peridically is a good practice, and is highly suggested before upgrade;</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>cd $KYLIN_HOME +./bin/metastore.sh backup +</code></pre> +</div> +<p>It will print the backup folder, take it down and make sure it will not be deleted before the upgrade finished. If there is no âmetastore.shâ, use HBaseâs snapshot command to do backup:</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>hbase shell +snapshot 'kylin_metadata', 'kylin_metadata_backup20150610' +</code></pre> +</div> +<p>Here âkylin_metadataâ is the default kylin metadata table name, replace it with the right table name of your Kylin;</p> + +<h4 id="install-new-kylin-and-copy-back-conf">2. Install new Kylin and copy back âconfâ</h4> +<p>Download the new Kylin binary package from Kylinâs download page; Extract it to a different folder other than current KYLIN_HOME; Before copy back the âconfâ folder, do a compare and merge between the old and new kylin.properties to ensure newly introduced property will be kept.</p> + +<h4 id="stop-old-and-start-new-kylin-instance">3. Stop old and start new Kylin instance</h4> +<div class="highlighter-rouge"><pre class="highlight"><code>cd $KYLIN_HOME +./bin/kylin.sh stop +export KYLIN_HOME="<path_of_new_installation>" +cd $KYLIN_HOME +./bin/kylin.sh start +</code></pre> +</div> + +<h4 id="back-port-if-the-upgrade-is-failed">4. Back-port if the upgrade is failed</h4> +<p>If the new version couldnât startup and need back-port, shutdown it and then switch to the old KYLIN_HOME to start. Idealy that would return to the origin state. If the metadata is broken, restore it from the backup folder.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>./bin/metastore.sh restore <path_of_metadata_backup> +</code></pre> +</div> + +<h2 id="upgrade-from-v06x-to-v07x">Upgrade from v0.6.x to v0.7.x</h2> + +<p>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<br /> +it has several compatible issues and the fix will be included in v0.7.2) Below is the steps;</p> + +<h4 id="backup-v06-metadata">1. Backup v0.6 metadata</h4> +<p>To avoid 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:</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>hbase shell +snapshot 'kylin_metadata', 'kylin_metadata_backup20150610' +</code></pre> +</div> + +<p>âkylin_metadataâ is the default kylin metadata table name, replace it with the right table name of your Kylin;</p> + +<h4 id="dump-v06-metadata-to-local-file">2. Dump v0.6 metadata to local file</h4> +<p>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;</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>hbase org.apache.hadoop.util.RunJar ${KYLIN_HOME}/lib/kylin-job-x.x.x-job.jar org.apache.kylin.common.persistence.ResourceTool download ./meta_dump +</code></pre> +</div> + +<p>(./meta_dump is the local folder that the metadata will be downloaded, change to name you preferred)</p> + +<h4 id="run-cubemetadataupgrade-to-migrate-the-metadata">3. Run CubeMetadataUpgrade to migrate the metadata</h4> +<p>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;</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>hbase org.apache.hadoop.util.RunJar ${KYLIN_HOME}/lib/kylin-job-x.x.x-job.jar org.apache.kylin.job.CubeMetadataUpgrade ./meta_dump +</code></pre> +</div> + +<ol> + <li>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;</li> + <li>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;</li> + <li>If you see <em>No error or warning messages; The migration is success</em> , thatâs good; Otherwise please check the error/warning messages carefully;</li> + <li>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:</li> +</ol> + +<div class="highlighter-rouge"><pre class="highlight"><code>hbase org.apache.hadoop.util.RunJar ${KYLIN_HOME}/lib/kylin-job-x.x.x-job.jar org.apache.kylin.job.CubeMetadataUpgrade ./meta_dump2 verify +</code></pre> +</div> + +<h4 id="upload-the-new-metadata-to-hbase">4. Upload the new metadata to HBase</h4> +<p>Now the new format of metadata will be upload to the HBase to replace the old format; Stop Kylin, and then:</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>hbase org.apache.hadoop.util.RunJar ${KYLIN_HOME}/lib/kylin-job-x.x.x-job.jar org.apache.kylin.common.persistence.ResourceTool reset +hbase org.apache.hadoop.util.RunJar ${KYLIN_HOME}/lib/kylin-job-x.x.x-job.jar org.apache.kylin.common.persistence.ResourceTool upload ./meta_dump_v2 +</code></pre> +</div> + +<h4 id="update-htables-to-use-new-coprocessor">5. Update HTables to use new coprocessor</h4> +<p>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:</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>hbase org.apache.hadoop.util.RunJar ${KYLIN_HOME}/lib/kylin-job-x.x.x-job.jar org.apache.kylin.job.tools.DeployCoprocessorCLI ${KYLIN_HOME}/lib/kylin-coprocessor-x.x.x.jar +</code></pre> +</div> + +<p>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;</p> + + </article> + </div> + </div> + </div> + </div> + </div> + <!-- +* 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. +--> + +<footer id="underfooter"> + <div class="container"> + <div class="row"> + <div class="col-md-12 widget"> + <div class="widget-body" style="text-align:center"> + <a href="http://www.apache.org"> + <img id="asf-logo" alt="Apache Software Foundation" src="/assets/images/feather-small.gif"> + </a> + + <div> + The contents of this website are © 2015 Apache Software Foundation under the terms of the <a + href="http://www.apache.org/licenses/LICENSE-2.0"> Apache License v2 </a>. Apache Kylin and + its logo are trademarks of the Apache Software Foundation. + </div> + + </div> + </div> + </div> + <!-- /row of widgets --> + + </div> + <div></div> + +</footer> + + <script src="/assets/js/jquery-1.9.1.min.js"></script> + <script src="/assets/js/bootstrap.min.js"></script> + <script src="/assets/js/main.js"></script> + </body> +</html>