5分钟在k8s上可视化搭建Kylin5

152 阅读3分钟

Kubernetes环境准备

需要有一个可用的Kubernetes环境,如果不会搭建可以搜索引擎检索kubekey或者rancher,有大量快速搭建文档,当然用kubeadmin也可以。

如果只是测试的话,可以用k3s搭建一个集群,操作比较简单,资源占用也比较少。

使用CloudEon搭建Kylin5

CloudEon是一款基于Kubernetes的开源大数据平台,该平台致力于简化多种大数据服务在Kubernetes上的部署和管理。

这里使用CloudEon可以极快地在Kubernetes上搭建Kylin5需要的HDFS、YARN、Hive、Zookeeper等组件,省去不少安装的时间。

直接使用docker启动CloudEon。

docker run  -p 7700:7700  --name cloudeon --rm registry.cn-hangzhou.aliyuncs.com/udh/cloudeon:dev

启动CloudEon后,默认密码是admin/admin。

我们需要在CloudEon中创建一个Kubernetes集群,绑定我们已有的Kubernetes集群环境。

需要填写kubeconfig,用于CloudEon访问Kubernetes集群。kubeconfig的内容一般可以从Kubernetes的master节点上执行命令cat ~/.kube/config得到。需要注意一下server如果是hostname的话,需要保证CloudEon能正确访问得到。

image.png 成功创建集群后,需要添加节点,输入各个节点的ssh密码和账号即可。

然后我们开始安装Kylin服务。我已经提前安装好Kylin依赖的服务,如果没安装过,会提示先安装。 分配角色实例到指定节点安装

image.png 修改初始化配置,需要设置mysql配置

image.png

约等待几分钟,即可安装成功。 安装成功后可以点击Kylin服务,查看服务详情。

image.png 也可以通过服务角色,查看kylin的实时日志。

image.png

image.png 通过服务的web地址可以跳转kylin首页,地址一是通过hostname访问,地址二是通过ip地址访问。

image.png 默认密码是ADMIN/KYLIN

image.png 成功登陆后可以看到kylin5全新的界面,好看了不少。

image.png

导入Kylin5样本数据

使用kubectl进入kylin的pod中

[root@test-1 ~]# kubectl get pod |grep kylin
kylin-server-kylin18-74dbbbdc67-cp2f4                1/1     Running   0          6m43s

[root@test-1 ~]# kubectl exec -it kylin-server-kylin18-74dbbbdc67-cp2f4  bash

进入pod后,直接执行脚本导入内置数据集和样本项目。

sample.sh

等待几分钟后,可以看到数据都导入完成了,一些sql脚本也用hive命令执行完了。

image.png 回到页面上可以看到多了新的项目和一些hive表数据。

image.png

构建cube

点击model页面,可以看到多了一个cube 图片打开后,可以看到数据表直接的关系,很直看到都是inner join还有关联的字段。 图片点击index,可以看到默认导入的一些聚合组合还有index,可以看到状态都是没有构建的。 图片点击构建,可以选择增量或者全量,这里选择全量。 图片查看监控,可以看到构建的job 图片构建完成后可以看到cube的信息更新了 image.png

查询数据

执行sql查询

SELECT 
P_PARTKEY,P_NAME ,count(*)
FROM 
"SSB"."P_LINEORDER" as "P_LINEORDER" 

INNER JOIN "SSB"."CUSTOMER" as "CUSTOMER"
ON "P_LINEORDER"."LO_CUSTKEY"="CUSTOMER"."C_CUSTKEY"
INNER JOIN "SSB"."PART" as "PART"
ON "P_LINEORDER"."LO_PARTKEY"="PART"."P_PARTKEY"
INNER JOIN "SSB"."SUPPLIER" as "SUPPLIER"
ON "P_LINEORDER"."LO_SUPPKEY"="SUPPLIER"."S_SUPPKEY"
INNER JOIN "SSB"."DATES" as "DATES"
ON "P_LINEORDER"."LO_ORDERDATE"="DATES"."D_DATEKEY"
group by P_PARTKEY,P_NAME

可以看到answer的是cube而不是hive(spark)。 图片再执行一个查询 图片可以看到answer的是hive(spark),因为该查询语句没有命中预构建的cube,是直接用的spark进行即席查询的。 图片

点击跳转,可以跳到spark 的ui页面查看执行计划。 图片

相关链接:

Gitee:gitee.com/dromara/Clo…

Github:github.com/dromara/Clo…

官网:cloudeon.top/

项目文档:docs.cloudeon.top/en/dev/