1、Kubernetes环境准备
需要有一个可用的Kubernetes环境,如果不会搭建可以搜索引擎检索kubekey或者rancher,有大量快速搭建文档,当然用kubeadmin也可以。
如果只是测试的话,可以用k3s搭建一个集群,操作比较简单,资源占用也比较少。
2、使用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能正确访问得到。
成功创建集群后,需要添加节点,输入各个节点的ssh密码和账号即可。
然后我们开始安装Kylin服务。我已经提前安装好Kylin依赖的服务,如果没安装过,会提示先安装。
分配角色实例到指定节点安装
修改初始化配置,需要设置mysql配置
约等待几分钟,即可安装成功。
安装成功后可以点击Kylin服务,查看服务详情。
也可以通过服务角色,查看kylin的实时日志。
通过服务的web地址可以跳转kylin首页,地址一是通过hostname访问,地址二是通过ip地址访问。
默认密码是ADMIN/KYLIN
成功登陆后可以看到kylin5全新的界面,好看了不少。
3、导入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命令执行完了。
回到页面上可以看到多了新的项目和一些hive表数据。
4、构建cube
点击model页面,可以看到多了一个cube
打开后,可以看到数据表直接的关系,很直看到都是inner join还有关联的字段。
点击index,可以看到默认导入的一些聚合组合还有index,可以看到状态都是没有构建的。
点击构建,可以选择增量或者全量,这里选择全量。
查看监控,可以看到构建的job
构建完成后可以看到cube的信息更新了
5、查询数据
执行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/CloudEon
Github:github.com/dromara/CloudEon