You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2018/11/07 06:08:05 UTC

svn commit: r1845984 [4/25] - in /kylin/site: ./ about/ blog/ blog/2015/01/25/introduce-data-model/ blog/2015/06/10/release-v0.7.1-incubating/ blog/2015/08/13/kylin-dictionary/ blog/2015/08/15/fast-cubing/ blog/2015/09/06/release-v1.0-incubating/ blog/...

Modified: kylin/site/cn/docs/install/configuration.html
URL: http://svn.apache.org/viewvc/kylin/site/cn/docs/install/configuration.html?rev=1845984&r1=1845983&r2=1845984&view=diff
==============================================================================
--- kylin/site/cn/docs/install/configuration.html (original)
+++ kylin/site/cn/docs/install/configuration.html Wed Nov  7 06:08:00 2018
@@ -166,1266 +166,668 @@ var _hmt = _hmt || [];
 						<div id="pjax">
 							<h1 class="post-title">Kylin 配置</h1>
 							<article class="post-content" >
-							<p>Kylin 会自动从环境中检测 Hadoop/Hive/HBase 配置,如 “core-site.xml”, “hbase-site.xml” 和其他。除此之外,Kylin 有自己的配置,在 “conf” 文件夹下。</p>
+							<ul>
+  <li><a href="#kylin-config">配置文件及参数重写</a>
+    <ul>
+      <li><a href="#kylin-config">Kylin 配置文件</a></li>
+      <li><a href="#config-overwrite">配置重写</a>
+        <ul>
+          <li><a href="#project-config-overwrite">项目配置重写</a></li>
+          <li><a href="#cube-config-overwrite">Cube 配置重写</a></li>
+          <li><a href="#mr-config-overwrite">重写 MapReduce 任务相关</a></li>
+          <li><a href="#hive-config-overwrite">重写 Hive 参数</a></li>
+          <li><a href="#spark-config-overwrite">重写 Spark 参数</a></li>
+        </ul>
+      </li>
+    </ul>
+  </li>
+  <li><a href="#kylin-deploy">部署配置</a>
+    <ul>
+      <li><a href="#deploy-config">部署 Kylin</a></li>
+      <li><a href="#job-engine-ha">任务引擎高可用</a></li>
+      <li><a href="#kylin-jvm-settings">分配更多内存给 Kylin 实例</a></li>
+      <li><a href="#rest-config">RESTful Webservice</a></li>
+    </ul>
+  </li>
+  <li><a href="#kylin_metastore">Metastore 配置</a>
+    <ul>
+      <li><a href="#metadata">元数据</a></li>
+      <li><a href="#mysql-metastore">使用 MySQL 作为 Metastore (测试)</a></li>
+    </ul>
+  </li>
+  <li><a href="#kylin-build">构建配置</a>
+    <ul>
+      <li><a href="#hive-client-and-sparksql">Hive 客户端 &amp; SparkSQL</a></li>
+      <li><a href="#jdbc-datasource">配置 JDBC 数据源</a></li>
+      <li><a href="#precision-config">数据类型精度</a></li>
+      <li><a href="#cube-config">Cube 设置</a></li>
+      <li><a href="#cube-estimate">Cube 大小估计</a></li>
+      <li><a href="#cube-algorithm">Cube 构建算法</a></li>
+      <li><a href="#auto-merge">自动合并</a></li>
+      <li><a href="#snapshot">维表快照</a></li>
+      <li><a href="#cube-build">Cube 构建</a></li>
+      <li><a href="#dict-config">字典相关</a></li>
+      <li><a href="#uhc-config">超高基维度的处理</a></li>
+      <li><a href="#spark-cubing">Spark 构建引擎</a></li>
+      <li><a href="#dynamic-allocation">Spark 资源动态分配</a></li>
+      <li><a href="#job-config">任务相关</a></li>
+      <li><a href="#email-notification">启用邮件通知</a></li>
+      <li><a href="#cube-planner">启用 Cube Planner</a></li>
+      <li><a href="#hbase-config">HBase 存储</a></li>
+      <li><a href="#compress-config">启用压缩</a></li>
+    </ul>
+  </li>
+  <li><a href="#kylin-query">查询配置</a>
+    <ul>
+      <li><a href="#query-config">查询相关</a></li>
+      <li><a href="#fuzzy">模糊查询</a></li>
+      <li><a href="#cache-config">查询缓存</a></li>
+      <li><a href="#query-limit">查询限制</a></li>
+      <li><a href="#query-pushdown">查询下压</a></li>
+      <li><a href="#convert-sql">查询改写</a></li>
+      <li><a href="#jmx-metrics">收集查询指标到 JMX</a></li>
+      <li><a href="#dropwizard-metrics">收集查询指标到dropwizard</a></li>
+    </ul>
+  </li>
+  <li><a href="#kylin-security">安全配置</a>
+    <ul>
+      <li><a href="#ldap-sso">集成 LDAP 实现单点登录</a></li>
+      <li><a href="#ranger">与 Apache Ranger 集成</a></li>
+      <li><a href="#zookeeper-acl">启用 ZooKeeper ACL</a></li>
+    </ul>
+  </li>
+</ul>
+
+<h3 id="kylin-config">配置文件及参数重写</h3>
+
+<p>本小节介绍 Kylin 的配置文件和如何进行配置重写。</p>
+
+<h3 id="kylin-config-file">Kylin 配置文件</h3>
+
+<p>Kylin 会自动从环境中读取 Hadoop 配置(<code class="highlighter-rouge">core-site.xml</code>),Hive 配置(<code class="highlighter-rouge">hbase-site.xml</code>)和 HBase 配置(<code class="highlighter-rouge">hbase-site.xml</code>),另外,Kylin 的配置文件在 <code class="highlighter-rouge">$KYLIN_HOME/conf/</code> 目录下。<br />
+Kylin 的配置文件如下:</p>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin_hive_conf.xml</code>:该文件包含了 Hive 任务的配置项。</li>
+  <li><code class="highlighter-rouge">kylin_job_conf.xml</code> &amp; <code class="highlighter-rouge">kylin_job_conf_inmem.xml</code>:该文件包含了 MapReduce 任务的配置项。当执行<strong>In-mem Cubing</strong>任务时,需要在 <code class="highlighter-rouge">kylin_job_conf_inmem.xml</code> 中为 mapper 申请更多的内存</li>
+  <li><code class="highlighter-rouge">kylin-kafka-consumer.xml</code>:该文件包含了 Kafka 任务的配置项。</li>
+  <li><code class="highlighter-rouge">kylin-server-log4j.properties</code>:该文件包含了 Kylin 服务器的日志配置项。</li>
+  <li><code class="highlighter-rouge">kylin-tools-log4j.properties</code>:该文件包含了 Kylin 命令行的日志配置项。</li>
+  <li><code class="highlighter-rouge">setenv.sh</code> :该文件是用于设置环境变量的 shell 脚本,可以通过 <code class="highlighter-rouge">KYLIN_JVM_SETTINGS</code> 调整 Kylin JVM 栈的大小,且可以设置 <code class="highlighter-rouge">KAFKA_HOME</code> 等其他环境变量。</li>
+  <li><code class="highlighter-rouge">kylin.properties</code>:该文件是 Kylin 使用的全局配置文件。</li>
+</ul>
+
+<h3 id="config-overwrite">配置重写</h3>
+
+<p><code class="highlighter-rouge">$KYLIN_HOME/conf/</code> 中有部分配置项可以在 Web UI 界面进行重写,配置重写分为<strong>项目级别配置重写</strong>和 <strong>Cube 级别配置重写</strong>。配置重写的优先级关系为:Cube 级别配置重写 &gt; 项目级别配置重写 &gt; 全局配置文件。</p>
+
+<h3 id="project-config-overwrite">项目配置重写</h3>
+
+<p>在 Web UI 界面点击 “<strong>Manage Project</strong>” ,选中某个项目,点击 “<strong>Edit</strong>”-&gt;“<strong>Project Config</strong>”-&gt;”<strong>+ Property</strong>“,进行项目级别的配置重写,如下图所示:<br />
+<img src="/images/install/overwrite_config_project.png" alt="" /></p>
+
+<h3 id="cube-config-overwrite">Cube 配置重写</h3>
+
+<p>在设计 Cube (<strong>Cube Designer</strong>)的 “<strong>Configuration Overwrites</strong>“ 步骤可以添加配置项,进行 Cube 级别的配置重写,如下图所示:<br />
+<img src="/images/install/overwrite_config_v2.png" alt="" /></p>
+
+<h3 id="mr-config-overwrite">重写 MapReduce 任务相关</h3>
+
+<p>Kylin 支持在项目和 Cube 级别重写 <code class="highlighter-rouge">kylin_job_conf.xml</code> 和 <code class="highlighter-rouge">kylin_job_conf_inmem.xml</code> 中参数,以键值对的性质,按照如下格式替换:<br />
+<code class="highlighter-rouge">kylin.job.mr.config.override.&lt;key&gt; = &lt;value&gt;</code><br />
+如果您希望 Cube 的构建任务使用不同的 YARN resource queue,您可以设置:<code class="highlighter-rouge">kylin.engine.mr.config-override.mapreduce.job.queuename={queueName}</code></p>
+
+<h3 id="hive-config-overwrite">重写 Hive 参数</h3>
+
+<p>Kylin 支持在项目和 Cube 级别重写 <code class="highlighter-rouge">kylin_hive_conf.xml</code> 中参数,以键值对的性质,按照如下格式替换:<br />
+<code class="highlighter-rouge">kylin.source.hive.config-override.&lt;key&gt; = &lt;value&gt;</code><br />
+如果您希望 Hive 使用不同的 YARN resource queue,您可以设置:<code class="highlighter-rouge">kylin.source.hive.config-override.mapreduce.job.queuename={queueName}</code></p>
+
+<h3 id="spark-config-overwrite">重写 Spark 参数</h3>
+
+<p>Kylin 支持在项目和 Cube 级别重写 <code class="highlighter-rouge">kylin.properties</code> 中的 Spark 参数,以键值对的性质,按照如下格式替换:<br />
+<code class="highlighter-rouge">kylin.engine.spark-conf.&lt;key&gt; = &lt;value&gt;</code><br />
+如果您希望 Spark 使用不同的 YARN resource queue,您可以设置:<code class="highlighter-rouge">kylin.engine.spark-conf.spark.yarn.queue={queueName}</code></p>
+
+<h3 id="kylin-deploy">部署配置</h3>
+
+<p>本小节介绍部署 Kylin 相关的配置。</p>
+
+<h3 id="deploy-config">部署 Kylin</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.env</code>:指定 Kylin 部署的用途,参数值可选 <code class="highlighter-rouge">DEV</code>,<code class="highlighter-rouge">QA</code> 或 <code class="highlighter-rouge">PROD</code>,默认值为 <code class="highlighter-rouge">DEV</code>,在 DEV 模式下一些开发者功能将被启用</li>
+  <li><code class="highlighter-rouge">kylin.env.hdfs-working-dir</code>:指定 Kylin 服务所用的 HDFS 路径,默认值为 <code class="highlighter-rouge">/kylin</code>,请确保启动 Kylin 实例的用户有读写该目录的权限</li>
+  <li><code class="highlighter-rouge">kylin.env.zookeeper-base-path</code>:指定 Kylin 服务所用的 ZooKeeper 路径,默认值为 <code class="highlighter-rouge">/kylin</code></li>
+  <li><code class="highlighter-rouge">kylin.env.zookeeper-connect-string</code>:指定 ZooKeeper 连接字符串,如果为空,使用 HBase 的 ZooKeeper</li>
+  <li><code class="highlighter-rouge">kylin.env.hadoop-conf-dir</code>:指定 Hadoop 配置文件目录,如果不指定的话,获取环境中的 <code class="highlighter-rouge">HADOOP_CONF_DIR</code></li>
+  <li><code class="highlighter-rouge">kylin.server.mode</code>:指定 Kylin 实例的运行模式,参数值可选 <code class="highlighter-rouge">all</code>,<code class="highlighter-rouge">job</code>,<code class="highlighter-rouge">query</code>,默认值为 <code class="highlighter-rouge">all</code>,job 模式代表该服务仅用于任务调度,不用于查询;query 模式代表该服务仅用于查询,不用于构建任务的调度;all 模式代表该服务同时用于任务调度和 SQL 查询。</li>
+  <li><code class="highlighter-rouge">kylin.server.cluster-name</code>:指定集群名称</li>
+</ul>
+
+<h3 id="rw-deploy">读写分离配置</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.cluster-fs</code>:指明 HBase 集群的 HDFS 文件系统</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.cluster-hdfs-config-file</code>:指向 HBase 集群的 HDFS 配置文件</li>
+</ul>
+
+<blockquote>
+  <p>提示:更多信息请参考 <a href="http://kylin.apache.org/blog/2016/06/10/standalone-hbase-cluster/">Deploy Apache Kylin with Standalone HBase Cluster</a></p>
+</blockquote>
+
+<h3 id="kylin-jvm-settings">分配更多内存给 Kylin 实例</h3>
+
+<p>在 <code class="highlighter-rouge">$KYLIN_HOME/conf/setenv.sh</code> 中存在对 <code class="highlighter-rouge">KYLIN_JVM_SETTINGS</code> 的两种示例配置。<br />
+默认配置使用的内存较少,用户可以根据自己的实际情况,注释掉默认配置并取消另一配置前的注释符号以启用另一配置,从而为 Kylin 实例分配更多的内存资源,该项配置的默认值如下:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="nb">export </span><span class="nv">KYLIN_JVM_SETTINGS</span><span class="o">=</span><span class="s2">"-Xms1024M -Xmx4096M -Xss1024K -XX</span><span class="sb">`</span><span class="nv">MaxPermSize</span><span class="o">=</span>512M -verbose<span class="sb">`</span><span class="s2">gc -XX</span><span class="sb">`</span>+PrintGCDetails -XX<span class="sb">`</span><span class="s2">+PrintGCDateStamps -Xloggc</span><span class="sb">`</span><span class="nv">$KYLIN_HOME</span>/logs/kylin.gc.<span class="nv">$$</span> -XX<span class="sb">`</span><span class="s2">+UseGCLogFileRotation -XX</span><span class="sb">`</span><span class="nv">NumberOfGCLogFiles</span><span class="o">=</span>10 -XX<span class="sb">`</span><span class="s2">GCLogFileSize=64M"</span>
+<span class="c"># export KYLIN_JVM_SETTINGS="-Xms16g -Xmx16g -XX`MaxPermSize=512m -XX`NewSize=3g -XX`MaxNewSize=3g -XX`SurvivorRatio=4 -XX`+CMSClassUnloadingEnabled -XX`+CMSParallelRemarkEnabled -XX`+UseConcMarkSweepGC -XX`+CMSIncrementalMode -XX`CMSInitiatingOccupancyFraction=70 -XX`+UseCMSInitiatingOccupancyOnly -XX`+DisableExplicitGC -XX`+HeapDumpOnOutOfMemoryError -verbose`gc -XX`+PrintGCDetails -XX`+PrintGCDateStamps -Xloggc`$KYLIN_HOME/logs/kylin.gc.$$ -XX`+UseGCLogFileRotation -XX`NumberOfGCLogFiles=10 -XX`GCLogFileSize=64M"</span>
+</code></pre>
+</div>
+
+<h3 id="rest-config">RESTful Webservice</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.web.timezone</code>:指定 Kylin 的 REST 服务所使用的时区,默认值为 GMT+8</li>
+  <li><code class="highlighter-rouge">kylin.web.cross-domain-enabled</code>:是否支持跨域访问,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.web.export-allow-admin</code>:是否支持管理员用户导出信息,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.web.export-allow-other</code>:是否支持其他用户导出信息,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.web.dashboard-enabled</code>:是否启用 Dashboard,默认值为 FALSE</li>
+</ul>
+
+<h3 id="kylin_metastore">Metastore 配置</h3>
+
+<p>本小节介绍 Kylin Metastore 相关的配置。</p>
+
+<h3 id="metadata">元数据</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.metadata.url</code>:指定元数据库路径,默认值为 kylin_metadata@hbase</li>
+  <li><code class="highlighter-rouge">kylin.metadata.dimension-encoding-max-length</code>:指定维度作为 Rowkeys 时使用 fix_length 编码时的最大长度,默认值为 256</li>
+  <li><code class="highlighter-rouge">kylin.metadata.sync-retries</code>:指定元数据同步重试次数,默认值为 3</li>
+  <li><code class="highlighter-rouge">kylin.metadata.sync-error-handler</code>:默认值为 <code class="highlighter-rouge">DefaultSyncErrorHandler</code></li>
+  <li><code class="highlighter-rouge">kylin.metadata.check-copy-on-write</code>:清除元数据缓存,默认值为 <code class="highlighter-rouge">FALSE</code></li>
+  <li><code class="highlighter-rouge">kylin.metadata.hbase-client-scanner-timeout-period</code>:表示 HBase 客户端发起一次 scan 操作的 RPC 调用至得到响应之间总的超时时间,默认值为 10000(ms)</li>
+  <li><code class="highlighter-rouge">kylin.metadata.hbase-rpc-timeout</code>:指定 HBase 执行 RPC 操作的超时时间,默认值为 5000(ms)</li>
+  <li><code class="highlighter-rouge">kylin.metadata.hbase-client-retries-number</code>:指定 HBase 重试次数,默认值为 1(次)</li>
+  <li><code class="highlighter-rouge">kylin.metadata.resource-store-provider.jdbc</code>:指定 JDBC 使用的类,默认值为org.apache.kylin.common.persistence.JDBCResourceStore</li>
+</ul>
+
+<h3 id="mysql-metastore">使用 MySQL 作为 Metastore (测试)</h3>
+
+<blockquote>
+  <p><strong>注意</strong>:该功能还在测试中,建议您谨慎使用。</p>
+</blockquote>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.metadata.url</code>:指定元数据路径</li>
+  <li><code class="highlighter-rouge">kylin.metadata.jdbc.dialect</code>:指定 JDBC 方言</li>
+  <li><code class="highlighter-rouge">kylin.metadata.jdbc.json-always-small-cell</code>:默认值为 true</li>
+  <li><code class="highlighter-rouge">kylin.metadata.jdbc.small-cell-meta-size-warning-threshold</code>:默认值为 100(MB)</li>
+  <li><code class="highlighter-rouge">kylin.metadata.jdbc.small-cell-meta-size-error-threshold</code>:默认值为 1(GB)</li>
+  <li><code class="highlighter-rouge">kylin.metadata.jdbc.max-cell-size</code>:默认值为 1(MB)</li>
+  <li><code class="highlighter-rouge">kylin.metadata.resource-store-provider.jdbc</code>:指定 JDBC 使用的类,默认值为 org.apache.kylin.common.persistence.JDBCResourceStore</li>
+</ul>
+
+<blockquote>
+  <p>提示:更多信息请参考<a href="/docs/tutorial/mysql_metastore.html">基于 MySQL 的 Metastore 配置</a></p>
+</blockquote>
+
+<h3 id="kylin-build">构建配置</h3>
+
+<p>本小节介绍 Kylin 数据建模及构建相关的配置。</p>
+
+<h3 id="hive-client-and-sparksql">Hive 客户端 &amp; SparkSQL</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.source.hive.client</code>:指定 Hive 命令行类型,参数值可选 cli 或 beeline,默认值为 cli</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.beeline-shell</code>:指定 Beeline shell 的绝对路径,默认为 beeline</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.beeline-params</code>:当使用 Beeline 做为 Hive 的 Client 工具时,需要配置此参数,以提供更多信息给 Beeline</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.enable-sparksql-for-table-ops</code>:默认值为 FALSE,当使用 SparkSQL 时需要设置为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.sparksql-beeline-shell</code>:当使用 SparkSQL Beeline 做为 Hive 的 Client 工具时,需要配置此参数为 /path/to/spark-client/bin/beeline</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.sparksql-beeline-params</code>:当使用 SparkSQL Beeline 做为 Hive 的 Client 工具时,需要配置此参数</li>
+</ul>
+
+<h3 id="jdbc-datasource">配置 JDBC 数据源</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.source.default</code>:JDBC 使用的数据源种类</li>
+  <li><code class="highlighter-rouge">kylin.source.jdbc.connection-url</code>:JDBC 连接字符串</li>
+  <li><code class="highlighter-rouge">kylin.source.jdbc.driver</code>:JDBC 驱动类名</li>
+  <li><code class="highlighter-rouge">kylin.source.jdbc.dialect</code>:JDBC方言,默认值为 default</li>
+  <li><code class="highlighter-rouge">kylin.source.jdbc.user</code>:JDBC 连接用户名</li>
+  <li><code class="highlighter-rouge">kylin.source.jdbc.pass</code>:JDBC 连接密码</li>
+  <li><code class="highlighter-rouge">kylin.source.jdbc.sqoop-home</code>:Sqoop 安装路径</li>
+  <li><code class="highlighter-rouge">kylin.source.jdbc.sqoop-mapper-num</code>:指定应该分为多少个切片,Sqoop 将为每一个切片运行一个 mapper,默认值为 4</li>
+  <li><code class="highlighter-rouge">kylin.source.jdbc.field-delimiter</code>:指定字段分隔符, 默认值为 \</li>
+</ul>
+
+<blockquote>
+  <p>提示:更多信息请参考<a href="/docs/tutorial/setup_jdbc_datasource.html">建立 JDBC 数据源</a>。</p>
+</blockquote>
+
+<h3 id="precision-config">数据类型精度</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.source.hive.default-varchar-precision</code>:指定 varchar 字段的最大长度,默认值为256</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.default-char-precision</code>:指定 char 字段的最大长度,默认值为 255</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.default-decimal-precision</code>:指定 decimal 字段的精度,默认值为 19</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.default-decimal-scale</code>:指定 decimal 字段的范围,默认值为 4</li>
+</ul>
+
+<h3 id="cube-config">Cube 设置</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.cube.ignore-signature-inconsistency</code>:Cube desc 中的 signature 信息能保证 Cube 不被更改为损坏状态,默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.cube.aggrgroup.max-combination</code>:指定一个 Cube 的聚合组 Cuboid 上限,默认值为 32768,不建议修改,过大的 Cuboid 数会导致构建耗时和膨胀率都达到不可接受的程度</li>
+  <li><code class="highlighter-rouge">kylin.cube.aggrgroup.is-mandatory-only-valid</code>:是否允许 Cube 只包含 Base Cuboid,默认值为 FALSE,当使用 Spark Cubing 时需设置为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.cube.rowkey.max-size</code>:指定可以设置为 Rowkeys 的最大列数,默认值为 63</li>
+  <li><code class="highlighter-rouge">kylin.cube.allow-appear-in-multiple-projects</code>:是否允许一个 Cube 出现在多个项目中</li>
+  <li><code class="highlighter-rouge">kylin.cube.gtscanrequest-serialization-level</code>:默认为 1</li>
+</ul>
+
+<h3 id="cube-estimate">Cube 大小估计</h3>
+
+<p>Kylin 和 HBase 都在写入磁盘时使用压缩,因此,Kylin 将在其原来的大小上乘以比率来估计 Cube 大小。</p>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.cube.size-estimate-ratio</code>:普通的 Cube,默认值为 0.25</li>
+  <li><code class="highlighter-rouge">kylin.cube.size-estimate-memhungry-ratio</code>:已废弃,默认值为 0.05</li>
+  <li><code class="highlighter-rouge">kylin.cube.size-estimate-countdistinct-ratio</code>:包含精确去重度量的 Cube 大小估计,默认值为 0.5</li>
+  <li><code class="highlighter-rouge">kylin.cube.size-estimate-topn-ratio</code>:包含 TopN 度量的 Cube 大小估计,默认值为 0.5</li>
+</ul>
+
+<h3 id="cube-algorithm">Cube 构建算法</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.cube.algorithm</code>:指定 Cube 构建的算法,参数值可选 <code class="highlighter-rouge">auto</code>,<code class="highlighter-rouge">layer</code> 和 <code class="highlighter-rouge">inmem</code>, 默认值为 <code class="highlighter-rouge">auto</code>,即 Kylin 会通过采集数据动态地选择一个算法 (layer or inmem),如果您很了解 Kylin 和您的数据、集群,您可以直接设置您喜欢的算法</li>
+  <li><code class="highlighter-rouge">kylin.cube.algorithm.layer-or-inmem-threshold</code>:默认值为 7</li>
+  <li><code class="highlighter-rouge">kylin.cube.algorithm.inmem-split-limit</code>:默认值为 500</li>
+  <li><code class="highlighter-rouge">kylin.cube.algorithm.inmem-concurrent-threads</code>:默认值为 1</li>
+  <li><code class="highlighter-rouge">kylin.job.sampling-percentage</code>:指定数据采样百分比,默认值为 100</li>
+</ul>
+
+<h3 id="auto-merge">自动合并</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.cube.is-automerge-enabled</code>:是否启用自动合并,默认值为 TRUE,将该参数设置为 FALSE 时,自动合并功能会被关闭,即使 Cube 设置中开启了自动合并、设置了自动合并阈值,也不会触发合并任务。</li>
+</ul>
+
+<h3 id="snapshot">维表快照</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.snapshot.max-mb</code>:允许维表的快照大小的上限,默认值为 300 (M)</li>
+  <li><code class="highlighter-rouge">kylin.snapshot.max-cache-entry</code>:缓存中最多可以存储的 snapshot 数量,默认值为 500</li>
+  <li><code class="highlighter-rouge">kylin.snapshot.ext.shard-mb</code>:设置存储维表快照的 HBase 分片大小,默认值为 500(M)</li>
+  <li><code class="highlighter-rouge">kylin.snapshot.ext.local.cache.path</code>:本地缓存路径,默认值为 lookup_cache</li>
+  <li><code class="highlighter-rouge">kylin.snapshot.ext.local.cache.max-size-gb</code>:本地维表快照缓存大小,默认值为 200(M)</li>
+</ul>
+
+<h3 id="cube-build">Cube 构建</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.storage.default</code>:指定默认的构建引擎,默认值为 2,即 HBase</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.keep-flat-table</code>:是否在构建完成后保留 Hive 中间表,默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.database-for-flat-table</code>:指定存放 Hive 中间表的 Hive 数据库名字,默认为 default,请确保启动 Kylin 实例的用户有操作该数据库的权限</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.flat-table-storage-format</code>:指定 Hive 中间表的存储格式,默认值为 SEQUENCEFILE</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.flat-table-field-delimiter</code>:指定 Hive 中间表的分隔符,默认值为  \u001F</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.redistribute-flat-table</code>:是否重分配 Hive 平表,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.redistribute-column-count</code>:重分配列的数量,默认值为 3</li>
+  <li><code class="highlighter-rouge">kylin.source.hive.table-dir-create-first</code>:默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.storage.partition.aggr-spill-enabled</code>:默认值为 <code class="highlighter-rouge">TRUE</code></li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.lib-dir</code>:指定 MapReduce 任务所使用的 jar 包的路径</li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.reduce-input-mb</code>:MapReduce 任务启动前会依据输入预估 Reducer 接收数据的总量,再除以该参数得出 Reducer 的数目,默认值为 500(MB)</li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.reduce-count-ratio</code>:用于估算 Reducer 数目,默认值为 1.0</li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.min-reducer-number</code>:MapReduce 任务中 Reducer 数目的最小值,默认为 1</li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.max-reducer-number</code>:MapReduce 任务中 Reducer 数目的最大值,默认为 500</li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.mapper-input-rows</code>:每个 Mapper 可以处理的行数,默认值为 1000000,如果将这个值调小,会起更多的 Mapper</li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.max-cuboid-stats-calculator-number</code>:用于计算 Cube 统计数据的线程数量,默认值为 1</li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.build-dict-in-reducer</code>:是否在构建任务 <strong>Extract Fact Table Distinct Columns</strong> 的 Reduce 阶段构建字典,默认值为 <code class="highlighter-rouge">TRUE</code></li>
+  <li><code class="highlighter-rouge">kylin.engine.mr.yarn-check-interval-seconds</code>:构建引擎间隔多久检查 Hadoop 任务的状态,默认值为 10(s)</li>
+</ul>
+
+<h3 id="dict-config">字典相关</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.dictionary.use-forest-trie</code>:默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.dictionary.forest-trie-max-mb</code>:默认值为 500</li>
+  <li><code class="highlighter-rouge">kylin.dictionary.max-cache-entry</code>:默认值为 3000</li>
+  <li><code class="highlighter-rouge">kylin.dictionary.growing-enabled</code>:默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.dictionary.append-entry-size</code>:默认值为 10000000</li>
+  <li><code class="highlighter-rouge">kylin.dictionary.append-max-versions</code>:默认值为 3</li>
+  <li><code class="highlighter-rouge">kylin.dictionary.append-version-ttl</code>:默认值为 259200000</li>
+  <li><code class="highlighter-rouge">kylin.dictionary.resuable</code>:是否重用字典,默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.dictionary.shrunken-from-global-enable</code>:是否缩小全局字典,默认值为 FALSE</li>
+</ul>
+
+<h3 id="uhc-config">超高基维度的处理</h3>
+
+<p>Cube 构建默认在 <strong>Extract Fact Table Distinct Column</strong> 这一步为每一列分配一个 Reducer,对于超高基维度,可以通过以下参数增加 Reducer 个数<br />
+- <code class="highlighter-rouge">kylin.engine.mr.build-uhc-dict-in-additional-step</code>:默认值为 <code class="highlighter-rouge">FALSE</code>,设置为 <code class="highlighter-rouge">TRUE</code><br />
+- <code class="highlighter-rouge">kylin.engine.mr.uhc-reducer-count</code>:默认值为 1,可以设置为 5,即为每个超高基的列分配 5 个 Reducer。</p>
+
+<h3 id="spark-cubing">Spark 构建引擎</h3>
+
+<p>Kylin 支持使用 Spark 作为 Cube 的构建引擎,详情请参考 <a href="/docs/tutorial/cube_spark.html">用 Spark 构建 Cube</a>。<br />
+与 Spark Cubing 有关的参数如下:</p>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.master</code>:指定 Spark 运行模式,默认值为 <code class="highlighter-rouge">yarn</code></li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.submit.deployMode</code>:指定 Spark on YARN 的部署模式,默认值为 <code class="highlighter-rouge">cluster</code></li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.yarn.queue</code>:指定 Spark 资源队列,默认值为 <code class="highlighter-rouge">default</code></li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.driver.memory</code>:指定 Spark Driver 内存大小,默认值为 2G</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.executor.memory</code>:指定 Spark Executor 内存大小,默认值为 4G</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.yarn.executor.memoryOverhead</code>:指定 Spark Executor 堆外内存大小,默认值为 1024(M)</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.executor.cores</code>:指定单个 Spark Executor可用核心数,默认值为 1</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.network.timeout</code>:指定 Spark 网络超时时间,600</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.executor.instances</code>:指定一个 Application 拥有的 Spark Executor 数量,默认值为 1</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.eventLog.enabled</code>:是否记录 Spark 时间,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.hadoop.dfs.replication</code>:HDFS 的副本数,默认值为 2</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.hadoop.mapreduce.output.fileoutputformat.compress</code>:是否压缩输出,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.hadoop.mapreduce.output.fileoutputformat.compress.codec</code>:输出所用压缩,默认值为 org.apache.hadoop.io.compress.DefaultCodec</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark.rdd-partition-cut-mb</code>:Kylin 用该参数的大小来分割 partition,默认值为 10(MB),可以在 Cube 级别重写这个参数,调整至更大,来减少分区数</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark.min-partition</code>:最小分区数,默认值为 1</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark.max-partition</code>:最大分区数,默认值为 5000</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark.storage-level</code>:RDD 分区数据缓存级别,默认值为 MEMORY_AND_DISK_SER</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf-mergedict.spark.executor.memory</code>:为合并字典申请更多的内存,默认值为 6G</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf-mergedict.spark.memory.fraction</code>:给系统预留的内存百分比,默认值为 0.2</li>
+</ul>
+
+<h3 id="dynamic-allocation">Spark 资源动态分配</h3>
+
+<p>Spark 资源动态分配的详细介绍请参考官方文档:<a href="http://spark.apache.org/docs/1.6.2/job-scheduling.html#dynamic-resource-allocation">Dynamic Resource Allocation</a>。<br />
+启用 Spark 资源动态分配,需要修改集群的资源管理器相关配置,会根据资源管理器的不同(YARN、Mesos 或 Standalone)有不同的配置方法,另外需要在 <code class="highlighter-rouge">kylin.properties</code> 中进行如下配置:</p>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.shuffle.service.enabled</code>:是否开启 shuffle service</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.dynamicAllocation.enabled</code>:是否启用 Spark 资源动态分配</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.dynamicAllocation.initialExecutors</code>:如果所有的 Executor 都移除了,重新请求启动时初始 Executor 数量</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.dynamicAllocation.minExecutors</code>:最少保留的 Executor 数量</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.dynamicAllocation.maxExecutors</code>:最多申请的 Executor 数量</li>
+  <li><code class="highlighter-rouge">kylin.engine.spark-conf.spark.dynamicAllocation.executorIdleTimeout</code>:Executor 空闲时间超过设置的值后,除非有缓存数据,不然会被移除,默认值为 60(s)</li>
+</ul>
+
+<h3 id="job-config">任务相关</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.job.log-dir</code>:默认值为 /tmp/kylin/logs</li>
+  <li><code class="highlighter-rouge">kylin.job.allow-empty-segment</code>:是否容忍数据源为空,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.job.max-concurrent-jobs</code>:最大构建并发数,默认值为 10</li>
+  <li><code class="highlighter-rouge">kylin.job.retry</code>:构建任务失败后的重试次数,默认值为 0</li>
+  <li><code class="highlighter-rouge">kylin.job.scheduler.priority-considered</code>:是否考虑任务优先级,默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.job.scheduler.priority-bar-fetch-from-queue</code>:指定从优先级队列中获取任务的时间间隔,默认值为 20(s)</li>
+  <li><code class="highlighter-rouge">kylin.job.scheduler.poll-interval-second</code>:从队列中获取任务的时间间隔,默认值为 30(s)</li>
+  <li><code class="highlighter-rouge">kylin.job.error-record-threshold</code>:指定任务抛出错误信息的阈值,默认值为 0</li>
+  <li><code class="highlighter-rouge">kylin.job.cube-auto-ready-enabled</code>:是否在构建完成后自动启用 Cube,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.cube.max-building-segments</code>:指定对同一个 Cube 的最大构建数量,默认值为 10</li>
+</ul>
+
+<h3 id="email-notification">启用邮件通知</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.job.notification-enabled</code>:是否在任务成功或者失败时进行邮件通知,默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.job.notification-mail-enable-starttls</code>:# 是否启用 starttls,默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.job.notification-mail-host</code>:指定邮件的 SMTP 服务器地址</li>
+  <li><code class="highlighter-rouge">kylin.job.notification-mail-port</code>:指定邮件的 SMTP 服务器端口,默认为 25</li>
+  <li><code class="highlighter-rouge">kylin.job.notification-mail-username</code>:指定邮件的登录用户名</li>
+  <li><code class="highlighter-rouge">kylin.job.notification-mail-password</code>:指定邮件的用户名密码</li>
+  <li><code class="highlighter-rouge">kylin.job.notification-mail-sender</code>:指定邮件的发送邮箱地址</li>
+  <li><code class="highlighter-rouge">kylin.job.notification-admin-emails</code>:指定邮件通知的管理员邮箱</li>
+</ul>
+
+<h3 id="cube-planner">启用 Cube Planner</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.cube.cubeplanner.enabled</code>:默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.server.query-metrics2-enabled</code>:默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.metrics.reporter-query-enabled</code>:默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.metrics.reporter-job-enabled</code>:默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.metrics.monitor-enabled</code>:默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.cube.cubeplanner.enabled</code>:是否启用 Cube Planner,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.cube.cubeplanner.enabled-for-existing-cube</code>:是否对已有的 Cube 启用 Cube Planner,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.cube.cubeplanner.algorithm-threshold-greedy</code>:默认值为 8</li>
+  <li><code class="highlighter-rouge">kylin.cube.cubeplanner.expansion-threshold</code>:默认值为 15.0</li>
+  <li><code class="highlighter-rouge">kylin.cube.cubeplanner.recommend-cache-max-size</code>:默认值为 200</li>
+  <li><code class="highlighter-rouge">kylin.cube.cubeplanner.mandatory-rollup-threshold</code>:默认值为 1000</li>
+  <li><code class="highlighter-rouge">kylin.cube.cubeplanner.algorithm-threshold-genetic</code>:默认值为 23</li>
+</ul>
+
+<blockquote>
+  <p>提示:更多信息请参考 <a href="/docs/tutorial/use_cube_planner.html">使用 Cube Planner</a>。</p>
+</blockquote>
+
+<h3 id="hbase-config">HBase 存储</h3>
+
+<ul>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.table-name-prefix</code>:默认值为 KYLIN_</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.namespace</code>:指定 HBase 存储默认的 namespace,默认值为 default</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.coprocessor-local-jar</code>:指向 HBase 协处理器有关 jar 包</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.coprocessor-mem-gb</code>:设置 HBase 协处理器内存大小,默认值为 3.0(GB)</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.run-local-coprocessor</code>:是否运行本地 HBase 协处理器,默认值为 FALSE</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.coprocessor-timeout-seconds</code>:设置超时时间,默认值为 0</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.region-cut-gb</code>:单个 Region 的大小,默认值为 5.0</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.min-region-count</code>:指定最小 Region 个数,默认值为 1</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.max-region-count</code>:指定最大 Region 个数,默认值为 500</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.hfile-size-gb</code>:指定 HFile 大小,默认值为 2.0(GB)</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.max-scan-result-bytes</code>:指定扫描返回结果的最大值,默认值为 5242880(byte),即 5(MB)</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.compression-codec</code>:是否压缩,默认值为 none,即不开启压缩</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.rowkey-encoding</code>:指定 Rowkey 的编码方式,默认值为 FAST_DIFF</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.block-size-bytes</code>:默认值为 1048576</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.small-family-block-size-bytes</code>:指定 Block 大小,默认值为 65536(byte),即 64(KB)</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.owner-tag</code>:指定 Kylin 平台的所属人,默认值为 whoami@kylin.apache.org</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.endpoint-compress-result</code>:是否返回压缩结果,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.max-hconnection-threads</code>:指定连接线程数量的最大值,默认值为 2048</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.core-hconnection-threads</code>:指定核心连接线程的数量,默认值为 2048</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.hconnection-threads-alive-seconds</code>:指定线程存活时间,默认值为 60</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.replication-scope</code>:指定集群复制范围,默认值为 0</li>
+  <li><code class="highlighter-rouge">kylin.storage.hbase.scan-cache-rows</code>:指定扫描缓存行数,默认值为 1024</li>
+</ul>
+
+<h3 id="compress-config">启用压缩</h3>
+
+<p>Kylin 在默认状态下不会启用压缩,不支持的压缩算法会阻碍 Kylin 的构建任务,但是一个合适的压缩算法可以减少存储开销和网络开销,提高整体系统运行效率。<br />
+Kylin 可以使用三种类型的压缩,分别是 HBase 表压缩,Hive 输出压缩 和 MapReduce 任务输出压缩。 <br />
+&gt; <strong>注意</strong>:压缩设置只有在重启 Kylin 实例后才会生效。</p>
+
+<ul>
+  <li>HBase 表压缩</li>
+</ul>
+
+<p>该项压缩通过 <code class="highlighter-rouge">kyiln.properties</code> 中的 <code class="highlighter-rouge">kylin.hbase.default.compression.codec</code> 进行配置,参数值可选 <code class="highlighter-rouge">none</code>,<code class="highlighter-rouge">snappy</code>,<code class="highlighter-rouge">lzo</code>,<code class="highlighter-rouge">gzip</code> 和 <code class="highlighter-rouge">lz4</code>,默认值为 <code class="highlighter-rouge">none</code>,即不压缩数据。<br />
+&gt; <strong>注意</strong>:在修改压缩算法前,请确保您的 HBase 集群支持所选压缩算法。</p>
+
+<ul>
+  <li>Hive 输出压缩</li>
+</ul>
+
+<p>该项压缩通过 <code class="highlighter-rouge">kylin_hive_conf.xml</code> 进行配置,默认配置为空,即直接使用了 Hive 的默认配置。如果想重写配置,请在 <code class="highlighter-rouge">kylin_hive_conf.xml</code> 中添加 (或替换) 下列属性。以 SNAPPY 压缩为例:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;property&gt;</span>
+	<span class="nt">&lt;name&gt;</span>mapreduce.map.output.compress.codec<span class="nt">&lt;/name&gt;</span>
+	<span class="nt">&lt;value&gt;</span>org.apache.hadoop.io.compress.SnappyCodec<span class="nt">&lt;/value&gt;</span>
+	<span class="nt">&lt;description&gt;&lt;/description&gt;</span>
+<span class="nt">&lt;/property&gt;</span>
+<span class="nt">&lt;property&gt;</span>
+	<span class="nt">&lt;name&gt;</span>mapreduce.output.fileoutputformat.compress.codec<span class="nt">&lt;/name&gt;</span>
+	<span class="nt">&lt;value&gt;</span>org.apache.hadoop.io.compress.SnappyCodec<span class="nt">&lt;/value&gt;</span>
+	<span class="nt">&lt;description&gt;&lt;/description&gt;</span>
+<span class="nt">&lt;/property&gt;</span>
+</code></pre>
+</div>
 
-<div class="highlight"><pre><code class="language-groff" data-lang="groff">-bash-4.1# ls -l $KYLIN_HOME/conf
+<ul>
+  <li>MapReduce 任务输出压缩</li>
+</ul>
+
+<p>该项压缩通过 <code class="highlighter-rouge">kylin_job_conf.xml</code> 和 <code class="highlighter-rouge">kylin_job_conf_inmem.xml</code> 进行配置。默认为空,即使用 MapReduce 的默认配置。如果想重写配置,请在 <code class="highlighter-rouge">kylin_job_conf.xml</code> 和 <code class="highlighter-rouge">kylin_job_conf_inmem.xml</code> 中添加 (或替换) 下列属性。以 SNAPPY 压缩为例:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;property&gt;</span>
+	<span class="nt">&lt;name&gt;</span>mapreduce.map.output.compress.codec<span class="nt">&lt;/name&gt;</span>
+	<span class="nt">&lt;value&gt;</span>org.apache.hadoop.io.compress.SnappyCodec<span class="nt">&lt;/value&gt;</span>
+	<span class="nt">&lt;description&gt;&lt;/description&gt;</span>
+<span class="nt">&lt;/property&gt;</span>
+<span class="nt">&lt;property&gt;</span>
+	<span class="nt">&lt;name&gt;</span>mapreduce.output.fileoutputformat.compress.codec<span class="nt">&lt;/name&gt;</span>
+	<span class="nt">&lt;value&gt;</span>org.apache.hadoop.io.compress.SnappyCodec<span class="nt">&lt;/value&gt;</span>
+	<span class="nt">&lt;description&gt;&lt;/description&gt;</span>
+<span class="nt">&lt;/property&gt;</span>
+</code></pre>
+</div>
+
+<h3 id="kylin-query">查询配置 {$kylin-query}</h3>
+
+<p>本小节介绍 Kylin 查询有关的配置。</p>
 
-kylin_hive_conf.xml
-kylin_job_conf_inmem.xml
-kylin_job_conf.xml
-kylin-kafka-consumer.xml
-kylin.properties
-kylin-server-log4j.properties
-kylin-tools-log4j.properties
-setenv.sh</code></pre></div>
-
-<h2 id="kylinhiveconfxml">kylin_hive_conf.xml</h2>
-
-<p>Kylin 从 Hive 中取数据时应用的 Hive 配置。</p>
-
-<h2 id="kylinjobconfxml-and-kylinjobconfinmemxml">kylin_job_conf.xml and kylin_job_conf_inmem.xml</h2>
-
-<p>Kylin 运行 MapReduce jobs 时的 Hadoop MR 配置。在 Kylin 的 “In-mem cubing” job 的时候,”kylin_job_conf_inmem.xml” 需要更多的 memory 给 mapper。</p>
-
-<h2 id="kylin-kafka-consumerxml">kylin-kafka-consumer.xml</h2>
-
-<p>Kylin 从 Kafka brokers 中取数据时应用的 Kafka 配置。</p>
-
-<h2 id="kylin-server-log4jproperties">kylin-server-log4j.properties</h2>
-
-<p>Kylin 服务器的日志配置。</p>
-
-<h2 id="kylin-tools-log4jproperties">kylin-tools-log4j.properties</h2>
-
-<p>Kylin 命令行的日志配置。</p>
-
-<h2 id="setenvsh">setenv.sh</h2>
-
-<p>设置环境变量的 shell 脚本。它将在 “kylin.sh” 和 “bin” 文件夹中的其它脚本中被调用。通常,您可以在这里调整 Kylin JVM 栈的大小,且可以设置 “KAFKA_HOME” 和其他环境变量。</p>
-
-<h2 id="kylinproperties">kylin.properties</h2>
-
-<p>Kylin 的主要配置文件。</p>
-
-<table>
-  <thead>
-    <tr>
-      <th>Key</th>
-      <th>Default value</th>
-      <th>Description</th>
-      <th>Overwritten at Cube</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td>kylin.env</td>
-      <td>Dev</td>
-      <td>Whether this env is a Dev, QA, or Prod environment</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.env.hdfs-working-dir</td>
-      <td>/kylin</td>
-      <td>Working directory on HDFS</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.env.zookeeper-base-path</td>
-      <td>/kylin</td>
-      <td>Path on ZK</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.env.zookeeper-connect-string</td>
-      <td> </td>
-      <td>ZK connection string; If blank, use HBase’s ZK</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.env.zookeeper-acl-enabled</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.env.zookeeper.zk-auth</td>
-      <td>digest:ADMIN:KYLIN</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.env.zookeeper.zk-acl</td>
-      <td>world:anyone:rwcda</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.dimension-encoding-max-length</td>
-      <td>256</td>
-      <td>Max length for one dimension’s encoding</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.url</td>
-      <td>kylin_metadata@hbase</td>
-      <td>Kylin metadata storage</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.sync-retries</td>
-      <td>3</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.sync-error-handler</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.check-copy-on-write</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.hbase-client-scanner-timeout-period</td>
-      <td>10000</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.hbase-rpc-timeout</td>
-      <td>5000</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.hbase-client-retries-number</td>
-      <td>1</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.jdbc.dialect</td>
-      <td>mysql</td>
-      <td>clarify the type of dialect</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.resource-store-provider.jdbc</td>
-      <td>org.apache.kylin.common.persistence.JDBCResourceStore</td>
-      <td>specify the class that jdbc used</td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.jdbc.json-always-small-cell</td>
-      <td>true</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.jdbc.small-cell-meta-size-warning-threshold</td>
-      <td>100mb</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.jdbc.small-cell-meta-size-error-threshold</td>
-      <td>1gb</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.metadata.jdbc.max-cell-size</td>
-      <td>1mb</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.use-forest-trie</td>
-      <td>true</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.forest-trie-max-mb</td>
-      <td>500</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.max-cache-entry</td>
-      <td>3000</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.growing-enabled</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.append-entry-size</td>
-      <td>10000000</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.append-max-versions</td>
-      <td>3</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.append-version-ttl</td>
-      <td>259200000</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.resuable</td>
-      <td>false</td>
-      <td>Whether reuse dict</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.dictionary.shrunken-from-global-enabled</td>
-      <td>false</td>
-      <td>Whether shrink global dict</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.snapshot.max-cache-entry</td>
-      <td>500</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.snapshot.max-mb</td>
-      <td>300</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.snapshot.ext.shard-mb</td>
-      <td>500</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.snapshot.ext.local.cache.path</td>
-      <td>lookup_cache</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.snapshot.ext.local.cache.max-size-gb</td>
-      <td>200</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.size-estimate-ratio</td>
-      <td>0.25</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.size-estimate-memhungry-ratio</td>
-      <td>0.05</td>
-      <td>Deprecated</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.size-estimate-countdistinct-ratio</td>
-      <td>0.5</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.size-estimate-topn-ratio</td>
-      <td>0.5</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.algorithm</td>
-      <td>auto</td>
-      <td>Cubing algorithm for MR engine, other options: layer, inmem</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.algorithm.layer-or-inmem-threshold</td>
-      <td>7</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.algorithm.inmem-split-limit</td>
-      <td>500</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.algorithm.inmem-concurrent-threads</td>
-      <td>1</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.ignore-signature-inconsistency</td>
-      <td>false</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.cube.aggrgroup.max-combination</td>
-      <td>32768</td>
-      <td>Max cuboid numbers in a Cube</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.aggrgroup.is-mandatory-only-valid</td>
-      <td>false</td>
-      <td>Whether allow a Cube only has the base cuboid.</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.cubeplanner.enabled</td>
-      <td>true</td>
-      <td>Whether enable cubeplanner</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.cubeplanner.enabled-for-existing-cube</td>
-      <td>true</td>
-      <td>Whether enable cubeplanner for existing cube</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.cubeplanner.algorithm-threshold-greedy</td>
-      <td>8</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.cubeplanner.expansion-threshold</td>
-      <td>15.0</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.cubeplanner.recommend-cache-max-size</td>
-      <td>200</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.cubeplanner.mandatory-rollup-threshold</td>
-      <td>1000</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.cubeplanner.algorithm-threshold-genetic</td>
-      <td>23</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.rowkey.max-size</td>
-      <td>63</td>
-      <td>Max columns in Rowkey</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.max-building-segments</td>
-      <td>10</td>
-      <td>Max building segments in one Cube</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.allow-appear-in-multiple-projects</td>
-      <td>false</td>
-      <td>Whether allow a Cueb appeared in multiple projects</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.cube.gtscanrequest-serialization-level</td>
-      <td>1</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.cube.is-automerge-enabled</td>
-      <td>true</td>
-      <td>Whether enable auto merge.</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.job.log-dir</td>
-      <td>/tmp/kylin/logs</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.job.allow-empty-segment</td>
-      <td>true</td>
-      <td>Whether tolerant data source is emtpy.</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.job.max-concurrent-jobs</td>
-      <td>10</td>
-      <td>Max concurrent running jobs</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.sampling-percentage</td>
-      <td>100</td>
-      <td>Data sampling percentage, to calculate Cube statistics; Default be all.</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.job.notification-enabled</td>
-      <td>false</td>
-      <td>Whether send email notification on job error/succeed.</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.notification-mail-enable-starttls</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.notification-mail-port</td>
-      <td>25</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.notification-mail-host</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.notification-mail-username</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.notification-mail-password</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.notification-mail-sender</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.notification-admin-emails</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.retry</td>
-      <td>0</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.job.scheduler.priority-considered</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.scheduler.priority-bar-fetch-from-queue</td>
-      <td>20</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.scheduler.poll-interval-second</td>
-      <td>30</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.error-record-threshold</td>
-      <td>0</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.job.cube-auto-ready-enabled</td>
-      <td>true</td>
-      <td>Whether enable the cube automatically when finish build</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.keep-flat-table</td>
-      <td>false</td>
-      <td>Whether keep the intermediate Hive table after job finished.</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.database-for-flat-table</td>
-      <td>default</td>
-      <td>Hive database to create the intermediate table.</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.flat-table-storage-format</td>
-      <td>SEQUENCEFILE</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.flat-table-field-delimiter</td>
-      <td>\u001F</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.redistribute-flat-table</td>
-      <td>true</td>
-      <td>Whether or not to redistribute the flat table.</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.redistribute-column-count</td>
-      <td>3</td>
-      <td>The number of redistribute column</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.client</td>
-      <td>cli</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.beeline-shell</td>
-      <td>beeline</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.beeline-params</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.enable-sparksql-for-table-ops</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.sparksql-beeline-shell</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.sparksql-beeline-params</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.table-dir-create-first</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.flat-table-cluster-by-dict-column</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.default-varchar-precision</td>
-      <td>256</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.default-char-precision</td>
-      <td>255</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.default-decimal-precision</td>
-      <td>19</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.hive.default-decimal-scale</td>
-      <td>4</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.source.jdbc.connection-url</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.source.jdbc.driver</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.source.jdbc.dialect</td>
-      <td>default</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.source.jdbc.user</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.source.jdbc.pass</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.source.jdbc.sqoop-home</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.source.jdbc.sqoop-mapper-num</td>
-      <td>4</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.source.jdbc.field-delimiter</td>
-      <td>|</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.default</td>
-      <td>2</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.table-name-prefix</td>
-      <td>KYLIN_</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.namespace</td>
-      <td>default</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.cluster-fs</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.cluster-hdfs-config-file</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.coprocessor-local-jar</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.min-region-count</td>
-      <td>1</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.max-region-count</td>
-      <td>500</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.hfile-size-gb</td>
-      <td>2.0</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.run-local-coprocessor</td>
-      <td>false</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.coprocessor-mem-gb</td>
-      <td>3.0</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.partition.aggr-spill-enabled</td>
-      <td>true</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.partition.max-scan-bytes</td>
-      <td>3221225472</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.coprocessor-timeout-seconds</td>
-      <td>0</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.max-fuzzykey-scan</td>
-      <td>200</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.max-fuzzykey-scan-split</td>
-      <td>1</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.max-visit-scanrange</td>
-      <td>1000000</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.scan-cache-rows</td>
-      <td>1024</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.region-cut-gb</td>
-      <td>5.0</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.max-scan-result-bytes</td>
-      <td>5242880</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.compression-codec</td>
-      <td>none</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.rowkey-encoding</td>
-      <td>FAST_DIFF</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.block-size-bytes</td>
-      <td>1048576</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.small-family-block-size-bytes</td>
-      <td>65536</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.owner-tag</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.endpoint-compress-result</td>
-      <td>true</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.max-hconnection-threads</td>
-      <td>2048</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.core-hconnection-threads</td>
-      <td>2048</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.hconnection-threads-alive-seconds</td>
-      <td>60</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.storage.hbase.replication-scope</td>
-      <td>0</td>
-      <td>whether config hbase cluster replication</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.lib-dir</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.reduce-input-mb</td>
-      <td>500</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.reduce-count-ratio</td>
-      <td>1.0</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.min-reducer-number</td>
-      <td>1</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.max-reducer-number</td>
-      <td>500</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.mapper-input-rows</td>
-      <td>1000000</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.max-cuboid-stats-calculator-number</td>
-      <td>1</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.uhc-reducer-count</td>
-      <td>1</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.build-uhc-dict-in-additional-step</td>
-      <td>false</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.build-dict-in-reducer</td>
-      <td>true</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.mr.yarn-check-interval-seconds</td>
-      <td>10</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.env.hadoop-conf-dir</td>
-      <td> </td>
-      <td>Hadoop conf directory; If not specified, parse from environment.</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark.rdd-partition-cut-mb</td>
-      <td>10.0</td>
-      <td>Spark Cubing RDD partition split size.</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark.min-partition</td>
-      <td>1</td>
-      <td>Spark Cubing RDD min partition number</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark.max-partition</td>
-      <td>5000</td>
-      <td>RDD max partition number</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark.storage-level</td>
-      <td>MEMORY_AND_DISK_SER</td>
-      <td>RDD persistent level.</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark-conf.spark.hadoop.dfs.replication</td>
-      <td>2</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark-conf.spark.hadoop.mapreduce.output.fileoutputformat.compress</td>
-      <td>true</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark-conf.spark.hadoop.mapreduce.output.fileoutputformat.compress.codec</td>
-      <td>org.apache.hadoop.io.compress.DefaultCodec</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark-conf-mergedict.spark.executor.memory</td>
-      <td>6G</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.engine.spark-conf-mergedict.spark.memory.fraction</td>
-      <td>0.2</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.skip-empty-segments</td>
-      <td>true</td>
-      <td>Whether directly skip empty segment (metadata shows size be 0) when run SQL query.</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.force-limit</td>
-      <td>-1</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.max-scan-bytes</td>
-      <td>0</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.max-return-rows</td>
-      <td>5000000</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.large-query-threshold</td>
-      <td>1000000</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.cache-threshold-duration</td>
-      <td>2000</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.cache-threshold-scan-count</td>
-      <td>10240</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.cache-threshold-scan-bytes</td>
-      <td>1048576</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.security-enabled</td>
-      <td>true</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.cache-enabled</td>
-      <td>true</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.timeout-seconds</td>
-      <td>0</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.timeout-seconds-coefficient</td>
-      <td>0.5</td>
-      <td>the coefficient to controll query timeout seconds</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.runner-class-name</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.update-enabled</td>
-      <td>false</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.cache-enabled</td>
-      <td>false</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.jdbc.url</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.jdbc.driver</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.jdbc.username</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.jdbc.password</td>
-      <td> </td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.jdbc.pool-max-total</td>
-      <td>8</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.jdbc.pool-max-idle</td>
-      <td>8</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.pushdown.jdbc.pool-min-idle</td>
-      <td>0</td>
-      <td> </td>
-      <td> </td>
-    </tr>
-    <tr>
-      <td>kylin.query.security.table-acl-enabled</td>
-      <td>true</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.query.calcite.extras-props.conformance</td>
-      <td>LENIENT</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.calcite.extras-props.caseSensitive</td>
-      <td>true</td>
-      <td>Whether enable case sensitive</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.calcite.extras-props.unquotedCasing</td>
-      <td>TO_UPPER</td>
-      <td>Options: UNCHANGED, TO_UPPER, TO_LOWER</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.calcite.extras-props.quoting</td>
-      <td>DOUBLE_QUOTE</td>
-      <td>Options: DOUBLE_QUOTE, BACK_TICK, BRACKET</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.statement-cache-max-num</td>
-      <td>50000</td>
-      <td>Max number for cache query statement</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.statement-cache-max-num-per-key</td>
-      <td>50</td>
-      <td> </td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.enable-dict-enumerator</td>
-      <td>false</td>
-      <td>Whether enable dict enumerator</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>kylin.query.enable-dynamic-column</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.server.mode</td>
-      <td>all</td>
-      <td>Kylin node mode: all|job|query.</td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.server.cluster-servers</td>
-      <td>localhost:7070</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.server.cluster-name</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.server.query-metrics-enabled</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.server.query-metrics2-enabled</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.server.auth-user-cache.expire-seconds</td>
-      <td>300</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.server.auth-user-cache.max-entries</td>
-      <td>100</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.server.external-acl-provider</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.security.ldap.user-search-base</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.security.ldap.user-group-search-base</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.security.acl.admin-role</td>
-      <td> </td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.web.timezone</td>
-      <td>PST</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.web.cross-domain-enabled</td>
-      <td>true</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.web.export-allow-admin</td>
-      <td>true</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.web.export-allow-other</td>
-      <td>true</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-    <tr>
-      <td>kylin.web.dashboard-enabled</td>
-      <td>false</td>
-      <td> </td>
-      <td>No</td>
-    </tr>
-  </tbody>
-</table>
+<h3 id="query-config">查询相关</h3>
 
+<ul>
+  <li><code class="highlighter-rouge">kylin.query.skip-empty-segments</code>:查询是否跳过数据量为 0 的 segment,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.query.large-query-threshold</code>:指定最大返回行数,默认值为 1000000</li>
+  <li><code class="highlighter-rouge">kylin.query.security-enabled</code>:是否在查询时检查 ACL,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.query.security.table-acl-enabled</code>:是否在查询时检查对应表的 ACL,默认值为 TRUE</li>
+  <li><code class="highlighter-rouge">kylin.query.calcite.extras-props.conformance</code>:是否严格解析,默认值为 LENIENT</li>
+  <li><code class="highlighter-rouge">kylin.query.calcite.extras-props.caseSensitive</code>:是否大小写敏感,默认值为 TRUE</li>
+  <li>
+    <table>
+      <tbody>
+        <tr>

[... 509 lines stripped ...]