Kylin快速入门系列(1) | Kylin的简单介绍及安装部署

  大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客主页:https://buwenbuhuo.blog.csdn.net/

  此篇为大家带来的是Kylin的简单介绍及安装部署。

安装所需要的文件博主已经上传到百度云了,如有需要可自行下载
链接:https://pan.baidu.com/s/1ZAQ1Uns1H4Ph1NTXQU9ZiQ
提取码:nunu


20

一. Kylin的简单介绍

1. Kylin定义

  Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

2. Kylin架构

1

  • 1.REST Server

  REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。另外可以通过Restful接口实现SQL查询。

  • 2.查询引擎(Query Engine)

  当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。

  • 3.路由器(Routing)

  在最初设计时曾考虑过将Kylin不能执行的查询引导去Hive中继续执行,但在实践后发现Hive与Kylin的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。

  • 4.元数据管理工具(Metadata)

  Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。 Kylin的元数据存储在hbase中。

  • 5.任务引擎(Cube Build Engine)

  这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

3. Kylin特点

  Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。
  1.标准SQL接口:Kylin是以标准的SQL作为对外服务的接口。
  2.支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。
  3.亚秒级响应:Kylin拥有优异的查询相应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。
  可伸缩性和高吞吐率:单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。
  4.BI工具集成
  Kylin可以与现有的BI工具集成,具体包括如下内容。
  ODBC:与Tableau、Excel、PowerBI等工具集成
  JDBC:与Saiku、BIRT等Java工具集成
  RestAPI:与JavaScript、Web网页集成
  Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务。

二. 安装部署Kylin(下面的所有步骤所有虚拟机均需操作)

  • 1.将apache-kylin-2.5.1-bin-hbase1x.tar.gz上传到Linux
    2
  • 2. 解压apache-kylin-2.5.1-bin-hbase1x.tar.gz到/opt/module
[bigdata@hadoop002 kylin]$ tar -zxvf apache-kylin-2.5.1-bin-hbase1x.tar.gz -C /opt/module/

// 注意:需要在/etc/profile文件中配置HADOOP_HOME,HIVE_HOME,HBASE_HOME并source使其生效。
[bigdata@hadoop003 software]$ sudo vim /etc/profile
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin

#HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin

#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

export KYLIN_HOME=/opt/module/kylin
export PATH=$PATH:$KYLIN_HOME/bin

// 使刚才的配置立即生效
[bigdata@hadoop002 kylin]$ source /etc/profile

  • 3. 修改文件名
[bigdata@hadoop002 module]$ mv apache-kylin-2.5.1-bin-hbase1x kylin
  • 4. 修改配置文件
[bigdata@hadoop002 conf]$ vim kylin.properties 

3

  • 5. 启动Kylin
// 启动Kylin前要保证HDFS,YARN,ZK,HBASE相关进程是正常运行的
[bigdata@hadoop002 kylin]$ start-dfs.sh 
[bigdata@hadoop003 software]$ start-yarn.sh 
[bigdata@hadoop002 zookeeper-3.4.10]$ bin/start-allzk.sh 
[bigdata@hadoop002 hbase]$ bin/start-hbase.sh 
[bigdata@hadoop002 kylin]$ mr-jobhistory-daemon.sh start historyserver

// 启动Kylin
[bigdata@hadoop002 kylin]$ bin/kylin.sh start

// 结束Kylin
[bigdata@hadoop002 kylin]$ bin/kylin.sh stop

4

用户名为:ADMIN,密码为:KYLIN(系统已填)

5
6

三. 安装时可能会遇见的坑

  • 1. 遇到错误

7
  文字错误:

2020-05-20 18:31:39,675 DEBUG [main] hbase.HBaseConnection:180 : Using the working dir FS for HBase: hdfs://hadoop002:9000
2020-05-20 18:31:39,735 INFO  [main] imps.CuratorFrameworkImpl:224 : Starting
2020-05-20 18:31:39,738 INFO  [main] zookeeper.ZooKeeper:438 : Initiating client connection, connectString=hadoop002:2181:2181,hadoop003:2181:2181,hadoop004:2181:2181 sessionTimeout=120000 watcher=org.apache.curator.ConnectionState@10c8f62
2020-05-20 18:31:39,770 ERROR [main] imps.CuratorFrameworkImpl:546 : Background exception was not retry-able or retry gave up
java.net.UnknownHostException: hadoop002:2181: 未知的名称或服务
	at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)

  • 2. 解决方法
// 修改hbase-site.xml 然后重启hbase和Kylin即可解决
<property>

             <name>hbase.zookeeper.property.clientPort</name>

             <value>2181</value>

</property>

<property>

            <name>hbase.zookeeper.quorum</name>

             <value>master,slave1,slave2,slave3</value>

</property>

  本次的分享就到这里了,


11

  好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
  如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
  码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

13
12

猜你喜欢

转载自blog.csdn.net/qq_16146103/article/details/106234972