Kylin 安装和使用

版本兼容性

Kylin Hadoop Hive HBase Spark Kafka Java HDP CDH
2.3 2.7+ 0.13 - 1.2.1+ 1.1+ 2.1.1+ 1.7+ 2.2 - 2.6 5.7 - 5.11
2.4 2.7+ 0.13 - 1.2.1+ 1.1+ 2.1.1+ 0.10.0+ 1.7+ 2.2 - 2.6 5.7 - 5.11
2.5, 2.6 2.7+, 3.1+ 0.13 - 1.2.1+ 1.1+, 2.0 2.3.0+ 1.0.0+ 1.8+ 2.2 - 2.6, 3.0 5.7 - 5.11, 6.0

Hadoop 环境

Kylin 依赖于 Hadoop 集群处理大量的数据集。需要准备一个配置好 HDFS,YARN,MapReduce,Hive,HBase,Zookeeper 和其他服务的 Hadoop 集群供 Kylin 运行。

Kylin 可以在 Hadoop 集群的任意节点上启动。方便起见,可以在 master 节点上运行 Kylin。为了更好的稳定性,建议将 Kylin 部署在一个干净的 Hadoop client 节点上,该节点上 Hive,HBase,HDFS 等命令行已安装好且 client 配置(如 core-site.xmlhive-site.xmlhbase-site.xml 及其他)也已经合理的配置且其可以自动和其它节点同步。

运行 Kylin 的 Linux 用户要有访问 Hadoop 集群的权限,包括创建/写入 HDFS 文件夹,Hive 表,HBase 表和提交 MapReduce 任务的权限。

单机安装

  1. 下载安装包
> wget https://www.apache.org/dyn/closer.cgi/kylin/apache-kylin-2.6.3/apache-kylin-2.6.3-bin-hbase1x.tar.gz
  1. 解压安装包,配置环境变量 $KYLIN_HOME 指向 Kylin 文件夹。
> tar -zxvf apache-kylin-2.6.3-bin-hbase1x.tar.gz
> mv apache-kylin-2.6.3-bin-hbase1x apache-kylin-2.6.3
> cd apache-kylin-2.6.3
> export KYLIN_HOME=`pwd`
> export PATH=$PATH:$KYLIN_HOME/bin

Kylin 目录结构

从 v2.6.1 开始, Kylin 不再包含 Spark 二进制包。需要另外下载 Spark,然后设置 SPARK_HOME 系统变量。

bin             shell 脚本,用于启动/停止 Kylin,备份/恢复 Kylin 元数据,以及一些检查端口、获取 Hive/HBase 依赖的方法等
conf            Hadoop 任务的 XML 配置文件,这些文件的作用可参考配置页面
lib             供外面应用使用的 jar 文件,例如 Hadoop 任务 jar, JDBC 驱动, HBase coprocessor 等
meta_backups    执行 bin/metastore.sh backup 后的默认的备份目录
sample_cube     用于创建样例 Cube 和表的文件
spark           自带的 spark
tomcat          自带的 tomcat,用于启动 Kylin 服务
tool            用于执行一些命令行的 jar 文件

  1. 检查运行环境

Kylin 运行在 Hadoop 集群上,对各个组件的版本、访问权限及 CLASSPATH 等都有一定的要求,为了避免遇到各种环境问题,可以运行 $KYLIN_HOME/bin/check-env.sh 脚本来进行环境检测,如果环境存在任何的问题,脚本将打印出详细报错信息。如果没有报错信息,代表环境适合 Kylin 运行。

  1. 启动 Kylin
> $KYLIN_HOME/bin/kylin.sh start
Retrieving hadoop conf dir...
KYLIN_HOME is set to .../apache-kylin-2.6.3
......
A new Kylin instance is started by root. To stop it, run 'kylin.sh stop'
Check the log at $KYLIN_HOME/logs/kylin.log
Web UI is at http://<hostname>:7070/kylin
  1. 使用 Kylin

Kylin 启动后可以通过浏览器 [http://<hostname>:7070/kylin] 进行访问。

其中 <hostname> 为具体的机器名、IP 地址或域名,默认端口为 7070。

初始用户名和密码是 ADMIN/KYLIN

服务器启动后,可以通过查看 $KYLIN_HOME/logs/kylin.log 获得运行时日志。

  1. 停止 Kylin
> $KYLIN_HOME/bin/kylin.sh stop
Retrieving hadoop conf dir...
KYLIN_HOME is set to .../apache-kylin-2.6.3
Stopping Kylin: 25964
Stopping in progress. Will check after 2 secs again...
Kylin with pid 25964 has been stopped.

可以运行 ps -ef | grep kylin 来查看 Kylin 进程是否已停止。


HDFS 目录结构

Kylin 会在 HDFS 上生成文件,根目录是 /kylin/ 然后会使用 Kylin 集群的元数据表名作为第二层目录名,默认为 kylin_metadata (可以在 conf/kylin.properties 中定制)

通常 /kylin/kylin_metadata 目录下会有这么几种子目录:

  1. cardinality -- Kylin 加载 Hive 表时,会启动一个 MR 任务来计算各个列的基数,输出结果会暂存在此目录。可以安全清除。
  2. coprocessor -- Kylin 用于存放 HBase coprocessor jar 的目录;请勿删除。
  3. kylin-job_id -- Cube 计算过程的数据存储目录,请勿删除。如需要清理,请遵循 storage cleanup guide
  4. resources -- Kylin 默认会将元数据存放在 HBase,但对于太大的文件(如字典或快照),会转存到 HDFS 的该目录下,请勿删除。如需要清理,请遵循 cleanup resources from metadata
  5. jdbc-resources -- 性质同上,只在使用 MySQL 做元数据存储时候出现。

集群安装

Kylin 实例是无状态的服务,运行时的状态信息存储在 HBase metastore 中。 出于负载均衡的考虑,可以启用多个共享一个 metastore 的 Kylin 实例,使得各个节点分担查询压力且互为备份,从而提高服务的可用性。

image

集群模式设置

如果需要将多个 Kylin 节点组成集群,请确保他们使用同一个 Hadoop 集群、HBase 集群。然后在每个节点的配置文件 $KYLIN_HOME/conf/kylin.properties 中执行下述操作:

  • 配置相同的 kylin.metadata.url 值,即配置所有的 Kylin 节点使用同一个 HBase metastore。
  • 配置 Kylin 节点列表 kylin.server.cluster-servers,包括所有节点(包括当前节点),当事件变化时,接收变化的节点需要通知其他所有节点(包括当前节点)。
  • 配置 Kylin 节点的运行模式 kylin.server.mode,参数值可选 all, job, query 中的一个,默认值为 all
    • job 模式代表该服务仅用于任务调度,不用于查询;
    • query 模式代表该服务仅用于查询,不用于构建任务的调度;
    • all 模式代表该服务同时用于任务调度和 SQL 查询。
    • 注意:默认情况下只有一个实例用于构建任务的调度(即 kylin.server.mode 设置为 all 或者 job 模式)。

任务引擎高可用

从 v2.0 开始, Kylin 支持多个任务引擎一起运行,相比于默认单任务引擎的配置,多引擎可以保证任务构建的高可用。

使用多任务引擎,可以在多个 Kylin 节点上配置它的角色为 joball。为了避免它们之间产生竞争,需要启用分布式任务锁,请在 kylin.properties 里配置:

kylin.job.scheduler.default=2
kylin.job.lock=org.apache.kylin.storage.hbase.util.ZookeeperJobLock

将所有任务和查询节点的地址注册到 kylin.server.cluster-servers

安装负载均衡器

为了将查询请求发送给集群而非单个节点,可以部署一个负载均衡器,如 Nginx, F5 或 cloudlb 等,使得客户端和负载均衡器通信代替和特定的 Kylin 实例通信。

读写分离部署

为了达到更好的稳定性和最佳的性能,建议进行读写分离部署,将 Kylin 部署在两个集群上:

  • 一个 Hadoop 集群用作 Cube 构建,这个集群可以是一个大的、与其它应用共享的集群;
  • 一个 HBase 集群用作 SQL 查询,通常这个集群是专门为 Kylin 配置的,节点数不用像 Hadoop 集群那么多,HBase 的配置可以针对 Kylin Cube 只读的特性而进行优化。

这种部署策略是适合生产环境的最佳部署方案,关于如何进行读写分离部署,请参考 Deploy Apache Kylin with Standalone HBase Cluster

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容