本文旨在为 Kylin 新手用户提供一份从下载安装到体验亚秒级查询的完整流程。文章分为两个部分,分别介绍了有 Hadoop 环境(基于 Hadoop 环境的安装)和没有 Hadoop 环境(从 Docker 镜像安装)两种场景下 Kylin的安装使用,用户可以根据自己的环境选择其中的任意一种方式。

用户可以按照文章里的步骤对 Kylin 进行初步的了解和体验,掌握 Kylin 的基本使用技能,然后结合自己的业务场景使用 Kylin 来设计模型,加速查询。

01 从 Docker 镜像安装使用 Kylin

为了让用户方便地试用 Kylin,蚂蚁金服的朱卫斌同学向社区贡献了「Kylin Docker Image」。该镜像中,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 的一键安装。

Step 1.
首先执行以下命令从 Docker 仓库 pull 镜像:

docker pull apachekylin/apache-kylin-standalone:3.0.1

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

Step 2.执行以下命令来启动容器:

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

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

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

  • 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

登陆 Kylin 后,用户可以使用 sample cube 来体验 cube 的构建和查询,也可以按照下面“基于 Hadoop 环境安装使用 Kylin ”中从 Step 8 之后的教程来创建并查询属于自己的 model 和 cube。

02 基于 Hadoop 环境安装使用 Kylin

对于已经有稳定 Hadoop 环境的用户,可以下载 Kylin 的二进制包将其部署安装在自己的 Hadoop 集群。安装之前请根据以下要求进行环境检查。

环境检查
(1)前置条件:

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

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

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

(2)硬件要求:

运行 Kylin 的服务器建议最低配置为 4 core CPU,16 GB 内存和 100 GB 磁盘。

(3)操作系统要求:

CentOS 6.5+ 或 Ubuntu 16.0.4+

(4)软件要求:

Hadoop 2.7+,3.0-3.1

Hive 0.13+,1.2.1+

HBase 1.1+,2.0(从 Kylin 2.5 开始支持)

JDK: 1.8+

建议使用集成的 Hadoop 环境进行 Kylin 的安装与测试,比如 Hortonworks HDP 或 Cloudera CDH ,Kylin发布前在 Hortonworks HDP 2.2-2.6 and 3.0, Cloudera CDH 5.7-5.11 and 6.0,AWS EMR 5.7-5.10,Azure HDInsight 3.5-3.6 上测试通过。

安装使用
当你的环境满足上述前置条件时 ,你可以开始安装使用 Kylin。

Step 1. 下载 Kylin 压缩包
从 https://kylin.apache.org/download/ 下载一个适用于你的 Hadoop 版本的二进制文件。目前最新版本是 Kylin 3.0.1和 Kylin 2.6.5,其中 3.0 版本支持实时摄入数据进行预计算的功能。如果你的 Hadoop 环境是 CDH 5.7,可以使用如下命令行下载 Kylin 3.0.0:

cd /usr/local/
wget http://apache.website-solution.net/kylin/apache-kylin-3.0.0/apache-kylin-3.0.0-bin-cdh57.tar.gz

Step 2. 解压 Kylin

解压下载得到的 Kylin 压缩包,并配置环境变量 KYLIN_HOME 指向解压目录:

tar -zxvf  apache-kylin-3.0.0-bin-cdh57.tar.gz
cd apache-kylin-3.0.0-bin-cdh57
export KYLIN_HOME=`pwd`

Step 3. 下载 Spark

由于 Kylin 启动时会对 Spark 环境进行检查,所以你需要设置 SPARK_HOME:

export SPARK_HOME=/path/to/spark

如果你没有已经下载好的 Spark 环境,也可以使用 Kylin 自带脚本下载 Spark:

$KYLIN_HOME/bin/download-spark.sh

脚本会将解压好的Spark放在 $KYLIN_HOME 目录下,如果系统中没有设置 SPARK_HOME,启动 Kylin 时会自动找到 $KYLIN_HOME 目录下的 Spark。

Step 4. 环境检查

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

Step 5. 启动 Kylin

运行 $KYLIN_HOME/bin/kylin.sh start 脚本来启动 Kylin,如果启动成功,命令行的末尾会输出如下内容:

A new Kylin instance is started by root. To stop it, run 'kylin.sh stop'
Check the log at /usr/local/apache-kylin-3.0.0-bin-cdh57/logs/kylin.log
Web UI is at http://<hostname>:7070/kylin

Kylin 启动的默认端口是 7070,可以使用 $KYLIN_HOME/bin/ kylin-port-replace-util.sh set number 来修改端口,修改后的端口是 7070+number。

Step 6. 访问 Kylin

Kylin 启动后,你可以通过浏览器 http://:port/kylin 进行访问。其中 为具体的机器名、IP 地址或域名,port 为 Kylin 端口,默认为 7070。初始用户名和密码是 ADMIN/KYLIN。服务器启动后,可以通过查看 $KYLIN_HOME/logs/kylin.log 获得运行时日志。

Step 7. 创建 Sample Cube

Kylin 提供了一个创建样例 Cube 的脚本,以供用户快速体验 Kylin。在命令行运行

$KYLIN_HOME/bin/sample.sh

完成后登陆 Kylin,点击 System->Configuration->Reload Metadata 来重载元数据。

元数据重载完成后,你可以在左上角的 Project 中看到一个名为 learn_kylin 的项目,它包含 kylin_sales_cube 和 kylin_streaming_cube, 它们分别为 batch cube 和 streaming cube。你可以直接对 kylin_sales_cube 进行构建,构建完成后就可以查询。对于 kylin_streaming_cube,需要设置 KAFKA_HOME,然后执行 ${KYLIN_HOME}/bin/sample-streaming.sh,该脚本会在 localhost:9092 broker 中创建名为 kylin_streaming_topic 的 Kafka Topic,它也会每秒随机发送 100 条 messages 到 kylin_streaming_topic,然后你可以对 kylin_streaming_cube 进行构建。

关于 sample cube,可以参考http://kylin.apache.org/cn/docs/tutorial/kylin_sample.html

当然,你也可以根据下面的教程来尝试创建自己的 Cube。

Step 8. 创建 Project

登陆 kylin 后,点击左上角的 + 号来创建 Project。

Step 9. 加载 Hive 表

点击 Model->Data Source->Load Table From Tree,Kylin 会读取到 Hive 数据源中的表,并以树状方式显示出来,你可以选择自己要使用的表,然后点击 Sync 进行将其加载到 Kylin。

随后,它们会出现在 Data Source 的 Tables 目录中

Step 10. 创建模型

点击 Model->New->New Model:

输入 Model Name 点击 Next 进行下一步,选择 Fact Table 和 Lookup Table,添加 Lookup Table 时需要设置与事实表的 JOIN 条件。

然后点击 Next 到下一步选择 Dimension:

Next 下一步选择 Measure:

Next 下一步设置时间分区列和过滤条件,时间分区列用于增量构建时选择时间范围,如果不设置时间分区列则代表该 model 下的 cube 都是全量构建。过滤条件会在打平表时用于 where 条件。

然后点击 Save 保存模型。

Step 11. 创建 Cube

Model->New->New Cube

点击 Next 到下一步添加 Dimension,Lookup Table 的维度可以设置为 Normal(普通维度)或者 Derived(衍生维度)两种类型,默认设置为衍生维度,衍生维度代表该列可以从所属维度表的主键中衍生出来,所以实际上只有主键列会被 Cube 加入计算。

点击 Next 到下一步,点击 +Measure 来添加需要预计算的度量。Kylin 会默认创建一个 Count(1) 的度量。Kylin 支持 SUM、MIN、MAX、COUNT、COUNT_DISTINCT、TOP_N、EXTENDED_COLUMN、PERCENTILE 八种度量。请为 COUNT_DISTINCT 和 TOP_N 选择合适的返回类型,这关系到 Cube 的大小。添加完成之后点击 ok,该 Measure 将会显示在 Measures 列表中。

添加完所有 Measure 后,点击 Next 进行下一步,这一页是关于 Cube 数据刷新的设置。在这里可以设施自动合并的阈值(Auto Merge Thresholds)、数据保留的最短时间(Retention Threshold)以及第一个 Segment 的起点时间。

点击 Next 跳转到下一页高级设置。在这里可以设置聚合组、RowKeys、Mandatory Cuboids、Cube Engine 等。关于高级设置的详细信息,可以参考 http://kylin.apache.org/cn/docs/tutorial/create_cube.html 页面中的步骤 5,其中对聚合组等设置进行了详细介绍。关于更多维度优化,可以阅读http://kylin.apache.org/blog/2016/02/18/new-aggregation-group/

对于高级设置不是很熟悉时可以先保持默认设置,点击 Next 跳转到 Kylin Properties 页面,你可以在这里重写 cube 级别的 Kylin 配置项,定义覆盖的属性,配置项请参考:http://kylin.apache.org/cn/docs/install/configuration.html

配置完成后,点击 Next 按钮到下一页,这里可以预览你正在创建的 Cube 的基本信息,并且可以返回之前的步骤进行修改。如果没有需要修改的部分,就可以点击 Save 按钮完成 Cube 创建。之后,这个 Cube 将会出现在你的 Cube 列表中。

Step 12. 构建 Cube

上一个步骤创建好的Cube只有定义,而没有计算好的数据,它的状态是“DISABLED”,是不可以查询的。要想让 Cube 有数据,还需要对它进行构建。Cube 的构建方式通常有两种:全量构建和增量构建。点击要构建的 Cube 的 Actions 列下的 Action 展开,选择 Build,如果 Cube 所属 Model 中没有设置时间分区列,则默认全量构建,点击 Submit 直接提交构建任务。如果设置了时间分区列,则会出现如下页面,在这里你要选择构建数据的起止时间:

设置好起止时间后,点击 Submit 提交构建任务。然后你可以在 Monitor 页面观察构建任务的状态。Kylin 会在页面上显示每一个步骤的运行状态、输出日志以及 MapReduce 任务。可以在 ${KYLIN_HOME}/logs/kylin.log 中查看更详细的日志信息。

任务构建完成后,Cube 状态会变成 READY,并且可以看到 Segment 的信息。

Step 13. 查询 Cube

Cube 构建完成后,在 Insight 页面的 Tables 列表下面可以看到构建完成的 Cube 的 table,并可以对其进行查询。查询语句击中 Cube 后,会返回存储在 HBase 中的预计算结果。

恭喜,进行到这里你已经具备了使用 Kylin 的基本技能,可以去发现和探索更多更强大的功能了。

了解更多大数据资讯,点击进入Kyligence官网

Kylin 初入门 | 从下载安装到体验查询的更多相关文章

  1. WPS Office 2012专业版与WPS2019政府云办公增强版下载安装与体验

    WPS Office 2012专业版与WPS2019政府云办公增强版下载安装与体验 一.WPS Office 2012专业版. 优点:没有广告,很清爽,界面很人性化.是我于2019年11月找出来安装测 ...

  2. Jenkins简单入门:下载-安装-配置-构建

    Jenkins简单配置流程 官网下载地址:https://jenkins.io/index.html 1.下载安装Jenkins (1)点击Download Jenkins进入下载页 (2)根据自己运 ...

  3. Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)

    1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...

  4. PyCharm 2017 官网 下载 安装 设置 配置 (主题 字体 字号) 使用 入门 教程

    一.安装 Python 3.6 首先,要安装好 Python 3.6.如果你还没有安装,可以参考咪博士之前的教程 Python 3.6.3 官网 下载 安装 测试 入门教程 (windows) 二.官 ...

  5. hadoop入门篇-hadoop下载安装教程(附图文步骤)

    在前几篇的文章中分别就虚拟系统安装.LINUX系统安装以及hadoop运行服务器的设置等内容写了详细的操作教程,本篇分享的是hadoop的下载安装步骤. 在此之前有必要做一个简单的说明:分享的所有内容 ...

  6. JAVA、JDK等入门概念,下载安装JAVA并配置环境变量

    一.概念 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言,具体介绍可查阅百度JAVA百科,这里不再赘述. Java分为三个体系,分别为: Java SE(J2SE,Java2 Platf ...

  7. Linux入门学习教程:虚拟机体验之KVM篇

    本文中可以学习到的命令: 1. aptitude 是apt-get 不会产生垃圾的版本 2.       dpkg -L virtualbox 显示属于该包的文件 lsmod | grep kvmfi ...

  8. Linux_Ununtu 16.04 的下载安装并部署.Net Core 网站

    第一次接触Linux也难免有些懵逼,因为公司项目必须用.Net Core 开发一个后端服务应用:第一次用Linux给我的感觉就像在用2000年的手机一样:没用智能的操作:让人崩溃的用户体验.说多了都是 ...

  9. Android检查更新下载安装

    检查更新是任何app都会用到功能,任何一个app都不可能第一个版本就能把所有的需求都能实现,通过不断的挖掘需求迭代才能使app变的越来越好.检查更新自动下载安装分以下几个步骤: 请求服务器判断是否有最 ...

随机推荐

  1. Vue2.0 【第一季】第5节 v-on:绑定事件监听器

    目录 Vue2.0 [第一季] 第5节 v-on:绑定事件监听器 第五节 v-on:绑定事件监听器 一.使用绑定事件监听器,编写一个加分减分的程序. Vue2.0 [第一季] 第5节 v-on:绑定事 ...

  2. 今天对C语言不常用的小东西的了解

    今天又翻了C语言的书,看到const语句,一时间想不起来到底是干嘛的,看语句const   int   a=1;明白了这是一个支持常量指定类型的定义常量的关键字,作用几乎与#define一毛一样,但# ...

  3. WEB应用之http协议和httpd闲聊

    什么是web?在日常生活中我们常常听到web这个词,它到底是什么呢?今天我们来聊一聊web应用http协议:相信生活在如今互联网时代的我们,http这个协议应该对我们不是很陌生吧!比如双十一双十二我们 ...

  4. H5解决安卓软键盘弹出遮蔽的方法

    首先先判断是否为安卓,是的话才添加事件监听,获取焦点元素判断是否为input或者textarea类型,是的话,Element.scrollIntoView() 方法会让当前的元素滚动到浏览器窗口的可视 ...

  5. 对tf.nn.softmax的理解

    对tf.nn.softmax的理解 转载自律者自由 最后发布于2018-10-31 16:39:40 阅读数 25096  收藏 展开 Softmax的含义:Softmax简单的说就是把一个N*1的向 ...

  6. [BJDCTF 2nd]old-hack

    进入首页: 首页告诉了我们是thinkphp5的漏洞. 知道了是哪个版本的话就搜一搜喽:最后发现是thinkphp5.0.23的命令执行 payload_1:查看根目录文件,发现flag位置 http ...

  7. 【攻防世界】simple-unpack

    知识:upx脱壳 simple-unpack 难度系数: 3.0 题目来源: 暂无 题目描述:菜鸡拿到了一个被加壳的二进制文件 提示说有壳子:然后用PE分析发现是ELF upx的壳子

  8. Android应用开发基本流程

    Android应用开发流程 应用规划及架构设计 开发应用程序的步骤 项目有哪些功能. 需要哪些必要的界面及界面之间跳转的流程. 需要的数据及其数据的来源和格式. 是否需要服务器端的支持. 是否需要本地 ...

  9. P5021 赛道修建 题解

    原题链接 简要题意: 在一棵树上求 \(m\) 条不相交的路径的最小值的最大值. 本题部分分很多,而且本人也交了 \(27\) 次,所以一定要仔细讲部分分! 算法一 对于 \(b_i = a_i + ...

  10. 【总结】办公&编程&学习你可能需要这些小利器!

    偶然想到自己从最开始的编程小白,什么都不懂,看啥啥新鲜的时期,到现在颇有"蓦然回首,那人却在灯火阑珊处"的感觉,遂想整理一下这一路学习我个人发现的在办公.编程或者学新知识等方面针对 ...