kylin单机版quick start

最近想学习一下kylin的cube构建过程(本人做产品经历工作),因为没有云服务器,只好用自己的本本在虚拟机上搞一下~好记性不如烂笔头,记录一下过程和踩得坑,以后随时复习~

安装vmware

安装教程、安装包以及key网上都有很多,我装的是vmware workstation10

创建新的虚拟机

使用的是centos7镜像,内存处理器和硬盘都用了默认配置,怕笔记本承受不来它不该承担的压力~没调资源

centos7安装docker环境

新创建的虚拟节点,没有hadoop环境,所以选择安装docker直接使用kylin的单机镜像,容器里包含了kylin所依赖的所有大数据组件。安装全程使用root权限。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker包括三个基本概念:

  • 仓库(Repository)
  • 镜像(Image)
  • 容器(Container)

1,其中Registry是Docker用于存放镜像文件的仓库,Docker 仓库的概念跟Git 类似(就像商店存放所有的英雄,只是更改英雄的权限在某些非程序员手里)。

2,所谓镜像就是构建容器的源代码,是一个只读的模板,由一层一层的文件系统组成的,类似于虚拟机的镜像(英雄也是只读的,有自己的技能被动,你也不能进行操作)。

3,那么容器就是由Docker镜像创建的运行实例,类似于虚拟机,容器之间是相互隔离的,包含特定的应用及其所需的依赖文件(好比每个英雄都是隔离的,都有自己的皮肤,技能以及走的路线)。

   注:Docker Hub是Docker公司提供的一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像

(1)Docker支持以下的CentOS版本:

  1. Docker运行在CentOS 7(64-bit)上要求系统为64位,系统内核版本为3.10以上
  2. Docker运行在Centos 6.5或者更高的版本上,要求系统为64位,系统内核版本为2.6.32-431或者更高版本

docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上, RHEL/Centos 的内核修补过, centos6.5的版本就可以——这个可以试试)。

(2)查看centos版本和内核版本:

1、先查看自己的系统版本:

cat /etc/centos-release 

2、查看系统内核版本命令:

uname -a

3、(可选)把yum包更新到最新

(生产环境慎重!yum update会对软件包和内核升级,此处只是为了排除系统环境的影响)

yum update

4、安装系统依赖工具

yum install -y yum-utils device-mapper-persistent-data lvm2

5、yum的配置管理,添加docker的软件源地址

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6、更新yum缓存

yum makecache fast

7、查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

8、选择docker版本安装,安装Docker。

命令:yum install docker-ce-版本号。由于repo中默认只开启stable仓库,这里安装的是最新版本

yum install docker-ce

9、启动docker服务

systemctl start docker

10、加入开机启动项

systemctl enable docker

11、查看docker版本

docker version

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

以下是一份从下载安装到体验亚秒级查询的完整流程,主要介绍没有hadoop环境(从docker镜像安装)场景下kylin的安装使用。

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

  • JDK 1.8

  • Hadoop 2.7.0

  • Hive 1.2.1

  • Hbase 1.1.2 (with Zookeeper)

  • Spark 2.3.1

  • Kafka 1.1.1

  • MySQL 5.1.73

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

常用docker命令:

  • docker ps 查看当前正在运行的容器
  • docker ps -a 查看所有容器的状态
  • docker start/stop id/name 启动/停止某个容器
  • docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)
  • docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
  • docker images 查看本地镜像
  • docker rm id/name 删除某个容器
  • docker rmi id/name 删除某个镜像
  • docker run --name test -ti ubuntu /bin/bash  复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash
  • docker build -t soar/centos:7.1 .  通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像
  • docker run -d -p 2222:22 --name test soar/centos:7.1  以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变

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

docker pull apachekylin/apache-kylin-standalone:3.1.0

在制作镜像过程中出现docker pull 报错,检查后发现应该是docker镜像网址设置有误,无法连接。

这是由于daemon.json没有配置造成的,需修改daemon.json

解决方法:进入/etc/docker 路径下执行下面命令(vim工具需要先yum安装):

vim daemon.json

输入以下内容来更改镜像网址:

{
  "registry-mirrors": ["https://registry.dockercn.com","https://nrbewqda.mirror.aliyuncs.com","https://dmmxhzvq.mirror.aliyuncs.com"]
}

保存退出后重启docker即可:

systemctl restart docker

2、重新pull镜像

docker pull apachekylin/apache-kylin-standalone:3.1.0

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

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

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.1.0

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

  • Kylin 页面:http://127.0.0.1:7070/kylin/

初始用户名和密码是 ADMIN/KYLIN。

  • Hdfs NameNode 页面:http://127.0.0.1:50070

  • Yarn ResourceManager 页面:http://127.0.0.1:8088

  • HBase 页面:http://127.0.0.1:16010

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

  • 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.1.0-bin-hbase1x

使用ADMIN/KYLIN的用户名和密码组合登陆Kylin后,我们可以使用sample cube来体验cube的构建和查询。

4、创建project

登陆kylin后,点击左上角的+号来创建Project(英文不好,使用浏览器机翻了O(∩_∩)O~):

5、加载Hive表

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

6、创建模型

点击Model->New->New Model:

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

然后点击Next到下一步添加Dimension:

点击Next下一步添加Measure:

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

最后点击Save保存模型。

7、创建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等

[Mandatory Dimensions]强制维度

强制维度(Mandatory Dimensions):所有Cubeid中都包含的维度称之为强制维度,不包含强制维度的Cubeid不会计算。

优化效果:只计算包含强制维度的Cubeid,Cubeid的数量会缩减一半。

使用场景:假如有三个维度A,B,C,那么Cuboid就会有8个,分别为ABC,AB,BC,AC,A,B,C,这时将A设置为强制维度,那么就只会计算ABC,AB,AC,A这四个 Cubeid。

[Hierarchy Dimension]层次维度

层次维度(Hierarchy Dim):某些维度之间具有上下层次关联。

优化效果:如果有三个维度A,B,C 设置为层次维度,那么Cuboid数量将由2^3减为3+1。

使用场景:比较适用于进行下钻分析,比如年月日,省市县这种。

[Joint Dimension]联合维度

联合维度(Joint Dimension):固定用来分组的维度查询。

优化效果:将多个维度优化到一个维度。

使用场景:假如有ABC三个维度,但是在查询的时候只会出现Group by A,B,C,而不会出现Group A,Group by B,Group by A、B等等这种情况,那么就可以将A,B,C设置为联合维度。

对于高级设置不是很熟悉时可以先保持默认设置,点击Next跳转到Kylin Properties页面,可以在这里重写cube级别的kylin配置项,定义覆盖的属性。

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

step12.构建Cube

上一个步骤创建好的Cube只有定义,而没有计算好的数据,它的状态是‘DISABLED’,是不可以查询的。要想让Cube有数据,还需要对它进行构建。

Cube的构建方式通常有两种:全量构建和增量构建。

点击要构建的Cube的Actions列下的Action展开,选择Build,如果Cube所属Model中没有设置时间分区列,则默认全量构建,点击Submit直接提交构建任务。

如果设置了时间分区列,则会出现如下页面,在这里要选择构建数据的起止时间:

如果点击提交后提示报错,检查下本机/etc/hosts下ip地址是否配置

若未配置静态ip,需要重新配置后再次提交,则可以build成功

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值