阅读 749

Apache Kylin 入门 3 - 安装与配置

Apache Kylin 入门系列目录

安装 Kylin

前面两篇文章介绍了 Apache Kylin 相关的基本概念以及其工作原理,下面将进入实战部分,首先就是安装部署与配置。

大数据环境要求(V2.5.1)

  • 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.1)有了诸多的变化,支持了 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 的安装步骤:

  1. 从官方网站下载合适的版本;
  2. 解压安装包,配置环境变量 KYLIN_HOME 指向 Kylin 文件夹;
  3. 检查 Kylin 运行环境:$KYLIN_HOME/bin/check-env.sh
  4. 启动 Kylin:$KYLIN_HOME/bin/kylin.sh start
  5. 通过浏览器 http://hostname:7070/kylin 查看,初始用户名和密码为 ADMIN/KYLIN
  6. 运行 $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 的使用,可以参考官方文档:kylin.apache.org/cn/docs/tut…

Cube Planner 查询冷热 Cuboid

参考文章


Any Code,Code Any!

扫码关注『AnyCode』,编程路上,一起前行。

关注下面的标签,发现更多相似文章
评论