设为首页 收藏本站
查看: 835|回复: 0

[经验分享] 大数据分析平台Apache Kylin的部署(Cube构建使用)

[复制链接]

尚未签到

发表于 2018-11-18 13:28:56 | 显示全部楼层 |阅读模式
  前言
  Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。它提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持大规模数据,能够处理TB乃至PB级别的分析任务,能够在亚秒级查询巨大的Hive表,并支持高并发。
  

  Kylin的理论基础:空间换时间。
  Kylin从数据仓库中最常用的Hive中读取源数据,使用 MapReduce作为Cube构建的引擎,并把预计算结果保存在HBase中,对外暴露Rest API/JDBC/ODBC的查询接口。
  

  

  

  部署Kylin
  (一)下载安装
  写这篇博客时,最新版为2.0.0 beta版,最新的正式版为1.6.0,所以我使用的1.6.0。
  可以直接下载源码包编译安装,也可以根据自己的hadoop环境版本下载对应的二进制安装包。
   DSC0000.png
  我使用的是HDP2.4.2,Hbase版本是1.1.2。直接下载的是二进制包安装。
  

$ cd /opt
$ wget http://ftp.tc.edu.tw/pub/Apache/kylin/apache-kylin-1.6.0/apache-kylin-1.6.0-hbase1.x-bin.tar.gz
$ tar xf apache-kylin-1.6.0-hbase1.x-bin.tar.gz
$ vim /etc/profile
export KYLIN_HOME=/opt/apache-kylin-1.6.0-hbase1.x-bin
$ source /etc/profile  

  

  (二)环境检查
$cd /opt/apache-kylin-1.6.0-hbase1.x-bin
$./bin/check-env.sh
KYLIN_HOME is set to /opt/apache-kylin-1.6.0-hbase1.x-binmkdir: Permission denied: user=root, access=WRITE, inode="/kylin":hdfs:hdfs:drwxr-xr-xfailed to create /kylin, Please make sure the user has right to access /kylin
#提示使用hdfs用户
#check-env.sh脚本执行的是检查本地hive,hbase,hadoop等环境情况。
#并会在hdfs中创建一个kylin的工作目录。
$ su hdfs
$ ./bin/check-env.sh
KYLIN_HOME is set to /opt/apache-kylin-1.6.0-hbase1.x-bin
$ hadoop fs -ls /   #多了一个/kylin的目录drwxr-xr-x   - hdfs   hdfs            0 2017-01-19 10:08 /kylin  


  (三)启动
$ chown hdfs.hadoop /opt/apache-kylin-1.6.0-hbase1.x-bin
$ ./bin/kylin.sh start
A new Kylin instance is started by hdfs, stop it using "kylin.sh stop"Please visit
You can check the log at /opt/apache-kylin-1.6.0-hbase1.x-bin/logs/kylin.log  

(四)进入页面
http://localhost:7070/kylin
user:ADMIN    passwd:KYLIN
DSC0001.png
  

  
  使用Kylin
  (一)添加新的项目
DSC0002.png

  

  

  

  给项目起一个名字,添加项目描述。
DSC0003.png

  

  

  

  给项目添加数据源(加载hive数据表)
DSC0004.png

  

  

  

  

  在数据源的页面,可以手动填写hive表名
DSC0005.png

  

  

  

  成功加载了resource表的数据
DSC0006.png DSC0007.png

  

  

  

  这时就可以看到对应表的字段属性。
DSC0008.png

  

  

  

  

  (二)创建model(模型)

  新建model
DSC0009.png

  

  

  编辑model名字和描述
DSC00010.png

  

  

  

  选择数据表
DSC00011.png









接下来选择维度和度量,这是构建预计算模型cube中最为重要的两个属性。
度量: 度量是具体考察的聚合数量值,例如:销售数量、销售金额、人均购买量。计算机一点描述就是在SQL中就是聚合函数。
例如:select cate,count(1),sum(num) from fact_table where date>’20161112’ group by cate;
count(1)、sum(num)是度量
维度: 维度是观察数据的角度。例如:销售日期、销售地点。计算机一点的描述就是在SQL中就是where、group by里的字段
例如:select cate,count(1),sum(num) from fact_table where date>’20161112’ group by cate;
  date、cate是维度
  

  选择要分析的维度字段
  
DSC00012.png

  

  

  

  选择要分析的度量字段
DSC00013.png

  

  

  

  设置表中的时间字段
DSC00014.png

  

  

  

  

  

  

  (三)创建cube(立方体)
  Cube构建需要依赖前面创建的model。选择model,设置cube名。

DSC00015.png

  

  

  从上面model设置的维度字段中选择你需要分析的字段。
DSC00016.png

  

  

  

  选择度量。
  第一个_COUNT_是默认要计算的。
  第二个COUNT_DISTINCT,可以去重计算得到有多少个IP地址,即通常的UV。
  (COUNT_DISTINCT计算时是有精确度选择的,计算越精准需要的时间就越长)
  第三个TOP_N,是用来计算排名的。
  第四个MAX,是用来计算最大值的
  

  还有其他的MIN,SUM等各种计算表达式。
DSC00017.png

  后面的几个基本上就没有什么要设置的了,直接Next了,最后保存cube就好了。
  

  

  

  

  四)构建cube
  创建好cube之后,我们只是得到了一个计算模型。需要将数据按照我们设定的模型去计算,才能得到相应的结果。
  

  下面开始构建cube,在Action中选择Build
DSC00018.png

  

  

  选择要构建的时间范围(如果数据是持续写入hive表,那么可以使用cube持续构建)
DSC00019.png

  

  

  

  进入Monitor中查看正在构建的Cube,和历史构建的cube
DSC00020.png

  

  

  

  (五)查询
  cube构建成功后,数据就已经计算过,并将计算结果存储到了Hbase。那么这时候我们可以使用SQL在kylin中进行查询。
DSC00021.png

DSC00022.png

  

  比较一下在kylin中查询和直接在hive中查询的速度。
  执行一个group by order by的查询。
  SQL:select ip, max(loadmax)  as loadmax,max(connectmax) as connectmax, max(eth0max) as eth0max, max(eth1max) as eth1max ,max(rospace) as rospace,max(team) as team  from resource  group by ip order by loadmax asc ;
  
  在Kylin预计算之后,这条查询只用了0.11s
DSC00023.png

  

  

  直接在hive中进行计算时间是30.05s
DSC00024.png

  

  

  

  时间相差270倍!!!
  

  

  

  

  (六)样例数据
  #kylin自带一个样例,包含1w条数据的样本
$ ./bin/sample.sh
Sample cube is created successfully in project 'learn_kylin'.
Restart Kylin server or reload the metadata from web UI to see the change.
$ ./bin/kylin.sh stop
stopping Kylin:15334
$ ./bin/kylin.sh start  可以在Kylin中看到learn_kylin这个项目。并且有创建好的model和cube,可以供参考和学习。

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636619-1-1.html 上篇帖子: Dockerfile搭建apache、ssh服务 下篇帖子: svn+apache+https[yum]伪https
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表