Apache Kylin 入门系列目录
- Apache Kylin 入门 1 - 基本概念
- Apache Kylin 入门 2 - 原理与架构
- Apache Kylin 入门 3 - 安装配置参数详解
- Apache Kylin 入门 4 - 构建 Model
- Apache Kylin 入门 5 - 构建 Cube
安装 Kylin
前面两篇文章介绍了 Apache Kylin 相关的基本概念以及其工作原理,下面将进入实战部分,首先就是安装部署与配置。
大数据环境要求(V2.5.0)
- Hadoop: 2.7+, 3.1+
- Hive: 0.13 - 1.2.1+
- HBase: 1.1+, 2.0
- Spark (可选) 2.1.1+
- Kafka (可选) 0.10.0+
- JDK: 1.8+
- OS: Linux only, CentOS 6.5+ or Ubuntu 16.0.4+
- HDP (官方已测试) 2.2 - 2.6 and 3.0
- CDH (官方已测试) 5.7 - 5.11 and 6.0
大数据环境要求(V2.4.X)
- Hadoop: 2.7+
- Hive: 0.13 - 1.2.1+
- HBase: 1.1+
- Spark (可选) 2.1.1+
- Kafka (可选) 0.10.0+
- JDK: 1.7+
- OS: Linux only, CentOS 6.5+ or Ubuntu 16.0.4+
- HDP (官方已测试) 2.2 - 2.6
- CDH (官方已测试) 5.7 - 5.11
从上述配置可以看到,最新版(V2.5)有了诸多的变化,支持了 Hadoop 3.1,HBase 2.0;JDK 需求为 JDK8;CDH 用户需要注意的是:V2.5 已经支持 CDH 6.0 了。
硬件配置
最低配置(官方网站)
- 4 core CPU
- 16 GB memory
- 100 GB disk
推荐配置(KAP 官方文档)
- 两路 Intel 至强处理器,6核(或8核)CPU,主频 2.3GHz 或以上
- 64GB memory
- 至少 1 个 1TB 的 SAS 硬盘(3.5寸),7200RPM,RAID1
安装包文件目录说明
- bin:Kylin 脚本所在目录,包括:启停管理、元数据管理、环境检查、创建样例等脚本;
- conf:Kylin 配置文件所在目录,包括:Hive、Job、Kylin 运行参数、Kylin Config 等;
- lib:Kylin JDBC 驱动,HBase Coprocessor 协处理器 jar 所在目录;
- meta_backups:Kylin 元数据备份目录;
- sample_cube:官方样例所依赖的脚本和数据;
- sys_cube:系统 Cube 构建所依赖的脚本;
- spark:默认为自带的 spark,图中是一个软连接,指向地址为单独部署的 Spark。
安装部署 Kylin
详细步骤可参考官方网站,下面简单介绍 Kylin 的安装步骤:
- 从官方网站下载合适的版本;
- 解压安装包,配置环境变量 KYLIN_HOME 指向 Kylin 文件夹;
- 检查 Kylin 运行环境:
$KYLIN_HOME/bin/check-env.sh
; - 启动 Kylin:
$KYLIN_HOME/bin/kylin.sh start
; - 通过浏览器
http://hostname:7070/kylin
查看,初始用户名和密码为ADMIN/KYLIN
; - 运行
$KYLIN_HOME/bin/kylin.sh stop
即可停止 Kylin。
参数配置
配置文件一览
组件名 | 文件名 | 描述 |
---|---|---|
Kylin | kylin.properties |
Kylin 使用的全局配置文件 |
Kylin | kylin_hive_conf.xml |
Hive 任务的配置项,在构建 Cube 的第一步通过 Hive 生成中间表时,会根据该文件的设置调整 Hive 的配置参数 |
Kylin | kylin_job_conf_inmem.xml |
包含了 MR 任务的配置项,当 Cube 构建算法是 Fast Cubing 时,会根据该文件的设置调整构建任务中的 MR 参数 |
Kylin | kylin_job_conf.xml |
MR 任务的配置项,当 kylin_job_conf_inmem.xml 不存在,或 Cube 构建算法是 Layer Cubing 时,会根据该文件的设置调整构建任务中的 MR 参数 |
Hadoop | core-site.xml |
Hadoop使用的全局配置文件,用于定义系统级别的参数,如HDFS URL、Hadoop临时目录等 |
Hadoop | hdfs-site.xml |
用于配置HDFS参数,如 NameNode 与 DataNode 存放位置、文件副本个数、文件读取权限等 |
Hadoop | yarn-site.xml |
用于配置 Hadoop 集群资源管理系统参数,如 ResourceManader 与 NodeManager 的通信端口,web监控端口等 |
Hadoop | mapred-site.xml |
用于配置 MR 参数,如 reduce 任务的默认个数,任务所能够使用内存的默认上下限等 |
Hbase | hbase-site.xml |
用于配置 Hbase 运行参数,如 master 机器名与端口号,根数据存放位置等 |
Hive | hive-site.xml |
用于配置 Hive 运行参数,如 hive 数据存放目录,数据库地址等 |
Hadoop 参数配置
-
yarn.nodemanager.resource.memory-mb
配置项的值不小于 8192MB -
yarn.scheduler.maximum-allocation-mb
配置项的值不小于 4096MB -
mapreduce.reduce.memory.mb
配置项的值不小于 700MB -
mapreduce.reduce.java.opts
配置项的值不小于 512MB -
yarn.nodemanager.resource.cpu-vcores
配置项的值不小于 8
kylin.properties 核心参数
配置名 | 默认值 | 说明 |
---|---|---|
kylin.metadata.url | kylin_metadata@hbase |
Kylin 元数据库路径 |
kylin.env.hdfs-working-dir | /kylin |
Kylin 服务所用的 HDFS 路径 |
kylin.server.mode | all |
运行模式,可以是 all,job,query 中的一个 |
kylin.source.hive.database-for-flat-table | default |
Hive 中间表保存在哪个 Hive 数据库中 |
kylin.storage.hbase.compression-codec | none |
HTable 所采用的压缩算法 |
kylin.storage.hbase.table-name-prefix | kylin_ |
HTable 表名的前缀 |
kylin.storage.hbase.namespace | default |
HTable 默认表空间 |
kylin.storage.hbase.region-cut-gb | 5 |
region 分割的大小 |
kylin.storage.hbase.hfile-size-gb | 2 |
hfile 大小 |
kylin.storage.hbase.min-region-count | 1 |
最小 region 个数 |
kylin.storage.hbase.max-region-count | 500 |
最大 region 个数 |
kylin.query.force-limit | -1 |
为select * 语句强制添加 LIMIT 分句 |
kylin.query.pushdown.update-enabled | false |
是否开启查询下压 |
kylin.query.pushdown.cache-enabled | false |
开启查询是否缓存 |
kylin.cube.is-automerge-enabled | true |
segment 自动合并功能 |
kylin.metadata.hbase-client-scanner-timeout-period | 10000 |
HBase 扫描数据的超时时间 |
kylin.metadata.hbase-rpc-timeout | 5000 |
执行 RPC 操作的超时时间 |
kylin.metadata.hbase-client-retries-number | 1 |
HBase 重试次数 |
对上述参数的一些说明:
-
kylin.query.force-limit
默认是没有限制,推荐设置为 1000; -
kylin.storage.hbase.hfile-size-gb
可以设置为 1,有助于加快 MR 速度; -
kylin.storage.hbase.min-region-count
可以设置为 HBase 节点数,强制数据分散在 N 个节点; -
kylin.storage.hbase.compression-codec
默认没有进行压缩,推荐在环境运行情况下配置压缩算法。
Spark 相关配置
所有使用 kylin.engine.spark-conf.
作为前缀的 Spark 配置属性都能在 $KYLIN_HOME/conf/kylin.properties
中进行管理,当然这些参数支持在 Cube 的高级配置中进行覆盖。下面是推荐的 Spark 动态资源分配配置:
//运行在yarn-cluster模式,当然可以配置为独立 Spark 集群:spark://ip:7077
kylin.engine.spark-conf.spark.master=yarn
kylin.engine.spark-conf.spark.submit.deployMode=cluster
//启动动态资源分配
kylin.engine.spark-conf.spark.dynamicAllocation.enabled=true
kylin.engine.spark-conf.spark.dynamicAllocation.minExecutors=2
kylin.engine.spark-conf.spark.dynamicAllocation.maxExecutors=1000
kylin.engine.spark-conf.spark.dynamicAllocation.executorIdleTimeout=300
kylin.engine.spark-conf.spark.shuffle.service.enabled=true
kylin.engine.spark-conf.spark.shuffle.service.port=7337
//内存设置
kylin.engine.spark-conf.spark.driver.memory=2G
//数据规模较大或者字典较大时可以调大 executor 内存
kylin.engine.spark-conf.spark.executor.memory=4G
kylin.engine.spark-conf.spark.executor.cores=2
//心跳超时
kylin.engine.spark-conf.spark.network.timeout=600
//分区大小
kylin.engine.spark.rdd-partition-cut-mb=100
Cube Planner 相关配置
Cube Planner 是 V2.3 后添加的新功能,使用该功能可以在 Cube 创建成功后即可看到全部 Cuboid 的数目及组合情况;此外配置成功后,可以看到线上的 Query 与 Cuboid 的匹配情况,使得可以查看到热门、冷门甚至没有使用到的 Cuboid,借助这些可以指导我们对 Cube 构建进行二次优化;关于 Cube Planner 的使用,可以参考官方文档:http://kylin.apache.org/cn/docs/tutorial/use_cube_planner.html。
Cube Planner 查询冷热 Cuboid参考文章
Any Code,Code Any!
扫码关注『AnyCode』,编程路上,一起前行。
AnyCode
网友评论