前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kylin安装及使用

Kylin安装及使用

作者头像
shengjk1
发布2018-10-24 15:20:14
1.7K0
发布2018-10-24 15:20:14
举报
文章被收录于专栏:码字搬砖码字搬砖

背景 : 近来公司要做报表,随简单研究一下Kylin。Kylin可谓是我泱泱中华在Apace史上耀眼的一笔。

作用: Kylin是强大的OLAP分析引擎,详见官网。 Kylin 1.6 CDH5.10

安装

​ Kylin有两种安装方式:单机及集群。本文以集群为例。单机版Kylin安装起来还是挺简单的,解压即安装。

配置

​ 1.环境变量的配置:

export HADOOP_USER_NAME=hdfsexport KAFKA_HOME=/opt/cloudera/parcels/KAFKA-2.1.1-1.2.1.1.p0.18/lib/kafkaexport HCAT_HOME=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/hive-hcatalogexport HIVE_HOME=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/hiveexport KYLIN_HOME=/home/syphcdh/kylin/kylin-1.6.0-cdh5.7export PATH=${PATH}:${KYLIN_HOME}/bin

​ 2.Kylin.

​ 修改:

Kylin server mode, valid value [all, query, job]

kyin.server.mode=all

kylin.rest.servers=xxxxxx:7070,xxxxxx:7070

​ 仅支持一台机器为all

问题:

​ 1.can`t not fount org.apache.hadoop.hive.serde2.typeinfo.TypeInfo

​ 配置文件中加入:

​ kylin.job.mr.lib.dir=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/sentry/lib/

​ 2.hive的一些包会报找不到

​ 最简单的办法:将hive相关的包放入Kylin的lib目录下

​ 3.Application with id ‘application_1495078923524_0022’ doesn’t exist in RM or Timeline Server.

​ NodeManger内存不足

4.Kylin leverages HBase coprocessor to optimize query performance. After new versions released, the RPC protocol may get changed, so user need to redeploy coprocessor to HTable. There’s a CLI tool to update HBase Coprocessor:

KYLIN_HOME/bin/kylin.sh org.apache.kylin.storage.hbase.util.DeployCoprocessorCLI KYLIN_HOME/lib/kylin-coprocessor-*.jar all

5.2017-07-20 17:03:18,360 INFO org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.CubeVisitService: The cube visit did not finish normally because scan num exceeds threshold org.apache.kylin.gridtable.GTScanExceedThresholdException: Exceed scan threshold at 393073 at org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.CubeVisitService1.hasNext(CubeVisitService.java:258)atorg.apache.kylin.storage.hbase.cube.v2.HBaseReadonlyStore1.hasNext(CubeVisitService.java:258) at org.apache.kylin.storage.hbase.cube.v2.HBaseReadonlyStore1$1.hasNext(HBaseReadonlyStore.java:111) at org.apache.kylin.gridtable.GTAggregateScanner.iterator(GTAggregateScanner.java:139) at org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.CubeVisitService.visitCube(CubeVisitService.java:290) at org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos

原因3点: 说白了就是kylin关于hbase的3个参数: kylin.query.scan.threshold kylin.query.mem.budget kylin.query.coprocessor.mem.gb 任何一个参数不达标都会报regionserver 都会报org.apache.kylin.gridtable.GTScanExceedThresholdException: Exceed scan threshold ,而前端查询kylin是timeout

6.当用kylin做报表时,kylin报错 2017-06-26 14:51:52,523 ERROR [IPC Server handler 3 on 33033] org.apache.Hadoop.mapred.TaskAttemptListenerImpl: Task: attempt_1498453243500_0032_m_000000_0 - exited : Java.lang.ArrayIndexOutOfBoundsException: -1 at org.apache.kylin.engine.mr.steps.FactDistinctHiveColumnsMapper.putRowKeyToHLL(FactDistinctHiveColumnsMapper.java:179) at org.apache.kylin.engine.mr.steps.FactDistinctHiveColumnsMapper.map(FactDistinctHiveColumnsMapper.java:155)

经过查看kylin的issue得知 The problem is when you have same name column in Dim and Fact Table SOL1: Rename columns in Hive or use Hive’s view SOL2: Will be solved in Kylin 1971 (kylin2.0中已解决) 维度表跟维度表之间也不要有相同的字段

7.不同的cube维度不能相同

延伸

关于MPP和Cube预处理的差异,重复如下:

MPP 的基本思路是增加机器来并行计算,从而提高查询速度。比如扫描8亿记录一台机器要处理1小时,但如果用100台机器来并行处理,就只要一分钟不到。再配合列式存储和一些索引,查询可以更快返回。要注意这里在线运算量并没有减小,8亿条记录还是要扫描一次,只是参与的机器多了,所以快了。

MOLAP Cube 是一种预计算技术,基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速。8亿记录的一个3维索引可能只有几万条记录,规模大大缩小,所以在线计算量大大减小,查询可以很快。索引表也可以采用列存储,并行扫描等MPP常用的技术。但多维索引要对多维度的各种组合作预计算,离线建索引需要较大计算量和时间,最终索引也会占用较多磁盘空间。

最后的最后,你知道,小省是谁吗?偷偷的告诉你,小省喊我去玩啦~~~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年05月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档