Kylin学习笔记01 - docker安装和使用Kylin(macOS)

Kylin学习笔记 - mac使用docker安装和使用Kylin

第一章 概述及安装启动

1.1 Kylin概览

Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供 Hadoop 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc.开发并贡献至开源社区。

Apache Kylin™ 令使用者仅需三步,即可实现超大数据集上的亚秒级查询。

  1. 定义数据集上的一个星形或雪花形模型
  2. 在定义的数据表上构建cube
  3. 使用标准 SQL 通过 ODBC、JDBC 或 RESTFUL API 进行查询,仅需亚秒级响应时间即可获得查询结果

1.2 Kylin架构

Kylin 提供与多种数据可视化工具的整合能力,如 Tableau,PowerBI 等,令用户可以使用 BI 工具对 Hadoop 数据进行分析。

img

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当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

1.3 Kylin特点

Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。

1)标准SQL接口:

Kylin是以标准的SQL作为对外服务的接口。

2)支持超大数据集:

Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。

3)亚秒级响应:

Kylin拥有优异的查询相应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。

4)可伸缩性和高吞吐率:

单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。

5)BI工具集成

Kylin可以与现有的BI工具集成,具体包括如下内容。

ODBC:与Tableau、Excel、PowerBI等工具集成

JDBC:与Saiku、BIRT等Java工具集成

RestAPI:与JavaScript、Web网页集成

Kylin开发团队还贡献了****Zepplin****的插件,也可以使用Zepplin来访问Kylin服务。

第二章 Kylin环境搭建及启动

Apache Kylin官方文档-安装指南

官方推荐的两种环境搭建方式:

  1. 有Hadoop环境(linux)
  2. 没有Hadoop环境(docker)

我这里使用的是docker搭建环境和启动kylin

  • 本机环境

在这里插入图片描述

在这里插入图片描述

  • docker安装使用kylin

一、 从docker镜像安装使用kylin(不需要提前准备hadoop环境)

为了让用户方便的试用 Kylin,官方已经提供了 Kylin 的 docker 镜像。该镜像中,Kylin 依赖的各个服务均已正确的安装及部署,包括:

  • jdk 1.8
  • Hadoop 2.7.0
  • Hive 1.2.1
  • Hbase 1.1.2
  • Spark 2.3.1
  • Zookeeper 3.4.6
  • Kafka 1.1.1
  • Mysql
  • Maven 3.6.1

我们已将面向用户的 Kylin 镜像上传至 docker 仓库,用户无需在本地构建镜像,只需要安装docker,就可以体验kylin的一键安装。

step1、首先执行以下命令从 docker 仓库 pull 镜像:

docker pull apachekylin/apache-kylin-standalone:3.0.1

此处的镜像包含的是kylin最新Release版本kylin 3.0.1。由于该镜像中包含了所有kylin依赖的大数据组件,所以拉取镜像需要的时间较长,请耐心等待。Pull成功后显示如下:
img

step2、执行以下命令来启动容器:

docker run -d \
-m 8G \
-p 7070:7070 \
-p 8088:8088 \
-p 50070:50070 \
-p 8032:8032 \
-p 8042:8042 \
-p 16010:16010 \
apachekylin/apache-kylin-standalone:3.0.1

容器会很快启动,由于容器内指定端口已经映射到本机端口,可以直接在本机浏览器中打开各个服务的页面,如:

  • Kylin 页面:http://127.0.0.1:7070/kylin/
  • Hdfs NameNode 页面:http://127.0.0.1:50070
  • Yarn ResourceManager 页面:http://127.0.0.1:8088
  • HBase 页面:http://127.0.0.1:60010

容器启动时,会自动启动以下服务:

  • NameNode, DataNode
  • ResourceManager, NodeManager
  • HBase
  • Kafka
  • Kylin

并自动运行 $KYLIN_HOME/bin/sample.sh及在 Kafka 中创建 kylin_streaming_topic topic 并持续向该 topic 中发送数据。这是为了让用户启动容器后,就能体验以批和流的方式的方式构建 Cube 并进行查询。
用户可以通过docker exec命令进入容器,容器内相关环境变量如下:

JAVA_HOME=/home/admin/jdk1.8.0_141
HADOOP_HOME=/home/admin/hadoop-2.7.0
KAFKA_HOME=/home/admin/kafka_2.11-1.1.1
SPARK_HOME=/home/admin/spark-2.3.1-bin-hadoop2.6
HBASE_HOME=/home/admin/hbase-1.1.2
HIVE_HOME=/home/admin/apache-hive-1.2.1-bin
KYLIN_HOME=/home/admin/apache-kylin-3.0.0-alpha2-bin-hbase1x

使用ADMIN/KYLIN的用户名和密码组合登陆Kylin后,用户可以使用sample cube来体验cube的构建和查询,也可以按照下面“基于hadoop环境安装使用kylin”中从step8之后的教程来创建并查询属于自己的model和cube。

二、本机测试和遇到的问题

1. 本机测试启动kylin

  • docker拉取kylin镜像后,启动kylin

在这里插入图片描述

  • 启动成功后,查看docker镜像

2. 我遇到的问题

  • 问题描述:

    docker启动成功后,访问7070端口失败,查看docker镜像时,确实已经启动
    在这里插入图片描述

在这里插入图片描述

  • 原因及解决方案:
    • 1)docker配置的内存资源不够,服务启动后因内存不足导致出错
    • 解决方案:将docker配置的内存大小设置成 > 8G,我这里分配了9G
    • 在这里插入图片描述
    • 2)kylin服务启动慢,等一段时间后再刷新网页即可登录

3. 启动成功

  • 默认账号密码:
    • 账号:admin
    • 密码:KYLIN

在这里插入图片描述

  • 登录成功后,就可以愉快的使用kylin了😁
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章