如何在启用Kerberos的CDH中部署及使用Kylin

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.文档编写目的


我们在前面的文章简单介绍过Apache Kylin,请参考《如何在CDH中部署及使用Kylin》,文章中包含了如何在CDH上部署Kylin,以及创建cube,然后进行查询的两个demo例子。但对于CDH的生产系统,往往都会部署配置安全多租户,即Kerberos+Sentry,当CDH启用了Kerberos后,对于外部系统比如Kylin对接到CDH,我们就需要考虑安全认证的问题。本文主要描述如何在启用Kerberos的CDH集群中如何部署及使用Kylin。

  • 内容概述

1.下载Kylin

2.部署Kylin

3.Demo1

  • 测试环境

1.RedHat7.2

2.CM/CDH5.14.2

3.Apache Kylin2.3.1

4.集群启用Kerberos

  • 前置条件

1.CDH集群正常运行

2.Hive,HBase服务运行正常

3.安装Kylin服务的节点已经部署Hive Gateway、HBase Gateway角色

2.下载Kylin


社区版kylin下载地址:https://archive.apache.org/dist/kylin/ ,本次测试使用apache-kylin-2.3.1

3.部署Kylin


这里测试只部署了一个节点,实际生产可以部署多个节点,kylin是无状态的,前端做负载均衡,kylin的负载均衡配置后续会有文章详细介绍。

1.上传kylin安装包至服务器

2.解压至/usr/local目录,并建软链接

[root@nn ~]# tar -zxvf apache-kylin-2.3.1-cdh57-bin.tar.gz -C /usr/local/ 
[root@nn ~]# cd /usr/local/
[root@nn local]# ln -s apache-kylin-2.3.1-bin/ kylin

(可左右滑动)

3.Kylin环境配置

主要配置kylin的home目录及java环境变量,配置如下:

[root@nn kylin]# vim /etc/profile 
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export KYLIN_HOME=/usr/local/kylin
export PATH=$JAVA_HOME/bin:$PATH
[root@nn kylin]# source /etc/profile 

(可左右滑动)

然后修改kylin.properites文件,Kylin2.3.1支持spark执行引擎,如果需要使用spark引擎,则需要修改以下的配置,确保spark能够访问到hive

4.在每个节点创建kylin用户

[root@nn shell]# sh batch_cmd.sh node.list "useradd kylin"

(可左右滑动)

查看用户创建结果

[root@nn shell]# sh batch_cmd.sh node.list "id kylin" > check.txt
[root@nn shell]# cat check.txt

(可左右滑动)

5.创建kylin的kerberos账号,并生成kylin账号的keytab文件

生成kylin账号的keytab文件

并将kylin.keytab文件拷贝至部署Kylin的节点上

6.在部署kylin的节点上设置定时任务,进行kinit操作,kylin使用kylin用户去放问CDH集群的hive和hbase,所以需要kylin的凭证,通过定时执行以下脚本获取kylin用户的凭证

kinit -k -t /root/kylin.keytab kylin@MACRO.COM

(可左右滑动)

添加定时调度,这里设置每天23点59分执行一次

7.授予kylin用户访问hive的权限,如果启用了sentry的情况下,需要做此操作,可以登陆beeline或HUE进行授权。

8.在HBase上授权,允许kylin用户有访问hbase的权限,包括建表的权限

简单测试hbase中kylin用户的权限

9.执行bin/check-env.sh检查kylin运行环境

10.启动kylin服务

确认主机所使用的kerberos凭证为kylin

执行bin/kylin.sh start命令

11.访问kylin的web UI,这里的地址是http://192.168.0.196:7070/kylin,默认账号密码为:ADMIN/KYLIN

4.Demo:Kylin自带Sample


1.Kylin本身自带了一个测试例子,创建流程如下:

执行sample.sh脚本,这个主要是创建kylin的project、model、cube以及相关的hive表等。

查看Hive default库中的表,多了五张表

2.进入kylin Web界面reload metadata

3.查看导入模型

4.构建cube

5.选择数据分区范围

6.点击monitor,查看正在构建cube的作业

这一步会比较耗时,因为这步会进行预计算,默认是MapReduce作业。

7.查询构建完成的cube

先运行简单的count,可以看到耗时2.14s,再次执行基本在豪秒级,因为kylin支持缓存功能

执行多表关联查询

select sum(KYLIN_SALES.PRICE) 
as price_sum,KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME 
from KYLIN_SALES inner join KYLIN_CATEGORY_GROUPINGS
on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and 
KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
group by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
order by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME asc,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME desc

(可左右滑动)

耗时2.22s,查询支持多种展示方式,如:Line chart、bar chart、pie chart,可以点击Visualization查看可视化展示方式,并且可以选择不同的维度和度量字段。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-06-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏依乐祝

Ocelot简易教程(五)之集成IdentityServer认证以及授权

最近比较懒,所以隔了N天才来继续更新第五篇Ocelot简易教程,本篇教程会先简单介绍下官方文档记录的内容然后在前几篇文档代码的基础上进行实例的演示。目的是为了让...

1873
来自专栏Albert陈凯

Hadoop、Hbase、Hive版本兼容性

当我们想整合hadoop,hbase,hive,zookeeper的时候,如果刚入门,可能认为这是比较简单的问题。但是当你自己真正想整合的时候,却会遇到很多的问...

1.4K7
来自专栏IT可乐

mybatis 详解(九)------ 一级缓存、二级缓存

  上一章节,我们讲解了通过mybatis的懒加载来提高查询效率,那么除了懒加载,还有什么方法能提高查询效率呢?这就是我们本章讲的缓存。   本篇源码下载链接:...

2925
来自专栏Java成神之路

kylin_异常_02_java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf 解决办法

ERROR [http-bio-7070-exec-10] controller.TableController:189 : org/apache/hadoop...

2572
来自专栏Seebug漏洞平台

使用 XML 内部实体绕过 Chrome 和 IE 的 XSS 过滤器

来源:BypassingXSSFiltersusingXMLInternalEntities 原作者:DavidLitchfield (david@davidl...

40610
来自专栏xingoo, 一个梦想做发明家的程序员

CDH中如何升级Spark

通过上面的过程分析,可以知道,Spark版本存在两个地方:一个是A节点提交Spark-submit的程序必须是2.3.0版本的;另一个是Yarn使用的lib必须...

1720
来自专栏乐沙弥的世界

配置共享服务器模式

两者完成相同的任务,即处理所有指定的SQL操作。假定从客户端提交一个任意查询(DQL)到数据库服务器不论是专用模式还是共享

2503
来自专栏CSDN技术头条

资源控制在大数据和云计算平台中的应用

本文针对大数据平台中资源控制这个层面来详细介绍资源控制在不同操作系统上的具体技术实现,以及大数据平台和资源控制的集成。

6378
来自专栏高性能服务器开发

+从零实现一款12306刷票软件1.2

当然,这里需要说明一下的就是,由于全国的火车站点信息文件比较大,我们程序解析起来时间较长,加上火车站编码信息并不是经常变动,所以,我们我们没必要每次都下载这个s...

2032
来自专栏互联网技术栈

分布式任务调度组件 LTS 用户文档

LTS(light-task-scheduler)主要用于解决分布式任务调度问题,支持实时任务,定时任务和Cron任务。有较好的伸缩性,扩展性,健壮稳定性而被多...

2697

扫码关注云+社区

领取腾讯云代金券