最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

Apache Zeppelin与Apache Kylin结合运用实践

[复制链接]
跳转到指定楼层
楼主
发表于 2016-12-12 21:23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
来源:极客头条
大数据领域,有很多新兴或成熟的技术满足了我们对数据处理的各种需求,有专注于文件系统的,有专注于数据存储的,有解决资源协调问题,也有像Apache Kylin[1](下文统称Kylin)这种基于hadoop的OLAP引擎等。当这些技术满足了我们各个环节的需求把数据处理好后,我们就回到了最初的目标,数据分析。Apache Zeppelin[2](下文统称Zeppelin)即是一个试图在此领域助我们一臂之力的项目。
实际工作中,我们的数据会以多种多样的形式存在,可能存在某个文本中,可能存在Hive表里,也可能存在MySql里等等。面对多种环境,一个数据分析人员需要在各种环境间切换,获取他们想要的数据,数据获取到后觉得不够直观,还需要通过Excel等工具进行处理,做成表格画成图表。有没有这样一个项目,不管后端基于什么语言什么环境,只需要通过一个浏览器登陆一个页面便可获取数据,如果在数据展示方面做的再丰富些那就更好了。Zeppelin便能满足这样的需求。当然,Zeppelin的能力不仅仅这些,本文将侧重介绍Zeppelin与Apache Kylin在数据可视化上面的结合运用。
本文假设读者已经对Apache Kylin有所了解,可以访问Apache Kylin的主页 www.kylin.io 进一步了解,Apache Kylin 是一个开源的分布式查询引擎,提供基于Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区,并于2014年11月加入Apache孵化器项目,于2015年11月正式毕业成为Apache顶级项目。
本文将通过使用Apache Zeppelin查询构建于Apache Kylin中的航班信息数据并可视化来介绍相关内容,特别是Zeppelin和Kylin的整合,二次开发等。
安装Apache Kylin
首先,我们需要把Kylin环境搭建好,已经安装好Kylin的读者可以跳过这步。
Kylin官方网站有非常详细的安装介绍[3],这里针对想要尝试Kylin的读者做个简单介绍。Kylin是运行在hadoop环境上的,简单起见,可以下载Oracle VirtualBox+ Hortonworks Sandbox搭建示例环境。
Kylin是基于Hadoop之上的OLAP分析引擎,所以我们假设您有OLAP相关基础,对星型模型(Star-Schema)这些基本概念都有了解,在搭建好Hadoop环境后,我们需要准备一些测试数据,导入数据源到Hive中。一个简单的办法是把测试数据放到CSV文件中并传到HDFS目录下,然后针对文件创建Hive的external table,确保在Hive中可以查到对应的表和数据。数据准备好后,我们就可以下载Kylin的二进制安装包进行安装,具体请参考安装文档。
接下来在Web端的步骤可概括为
  • 创建项目 –为不同目的,用户组等创建不同的项目
  • 导入Hive元数据 –同步需要查询的Hive表元数据信息
  • 创建立方体 –针对Hive表创建Cube,定义表与表的关联关系,定义维度和度量等信息 -创建立方体 –接下来需要对数据进行计算,计算的结果就是我们最后查询的SQL会去映射的结果 -SQL查询– 构建成功后我们就可以体验到Kylin是如何快速查询超大规模数据了,再也不用一个SQL下去后在电脑面前慢慢等了!
安装Apache Zeppelin
Zeppelin在0.5.5版本之后加进了对Kylin的支持,我们目前可以直接下载Zeppelin v0.5.5的源代码进行编译,或者直接下载二进制包直接运行:
wget https://dist.apache.org/repos/dist/dev/incubator/zeppelin/0.5.5-incubating-rc1/zeppelin-0.5.5-incubating-bin-all.tgz
tar -xvzf zeppelin-0.5.5-incubating-bin-all.tgz (该版本下载链接如有变动,可关注Zeppelin官网或通过Zeppelin邮件列表获取最新信息,关于如何参与到Zeppelin社区本文末尾会介绍)
运行Zeppelin
解压后对应生成目录 zeppelin-0.5.5-incubating-bin-all,目录下有bin conf logs等子目录,直接通过bin下的zeppelin-damenson.sh脚本便可完成zeppelin的启动和停止。
假设当前在 zeppelin-0.5.5-incubating-bin-all 目录下
启动:bin/zeppelin-daemon.sh start
停止:bin/zeppelin-daemon.sh stop
启动成功后,登陆Zeppelin客户端,地址:http://{hostname}:8080,可看到下图页面
(注意,如果默认的8080端口已经被占用,启动将会失败,打开页面后右上角也不会出现绿色的Connected 图标。可到logs目录下查看log文件确定失败原因,如果是端口原因,那我们只需要创建并修改下配置文件的端口信息即可。配置也很简单,直接到conf目录下可看到文件 zeppelin-site.xml.template 复制文件,去掉后缀.template 重命名得到zeppelin-site.xml文件,找zeppelin.server.port修改为能用的端口即可。)
Kylin参数配置
Kylin Interpreter已经集成到Zeppelin 0.5.5的主代码中,所以直接在Zeppelin的配置页面可以找到Kylin配置信息。启动Zeppelin后,在主页点击header上的 Interpreter到该页面找到Kylin配置栏填上配置信息。
Kylin Interpreter主要功能是把前台的配置信息和要运行的SQL转换成一个HTTP请求以获取结果,然后按照Zeppelin的规范转换格式,主要就是完成一次HTTP请求,并把自己项目的查询结果按照Zeppelin的规范格式化,这样就能配合前端展示。所以这里的配置参考Kylin Query API即可,默认修改URL,账号,密码,Project信息即可,更多关于Kylin API信息点这里(http://kylin.apache.org/docs/howto/howto_use_restapi.html)。
创建Note
通过header上的NoteBook->Create New Note
在输入框开头加上%kylin,后面空格跟上需要运行SQL即可,可以体验Kylin在超大规模数据集上的查询性能!
多图表演示结果
发布链接
对于查询结果Zeppelin可以将结果发布为一个链接,让你内嵌到其他需要的网页中,这个功能非常实用。实际应用中有很多需求需要把Kylin的查询结果做成Dashboard展示,结合Zeppelin这个功能可以直接省去相关开发工作,更有效的关注在数据及业务上。
就这几步,非常简单,感兴趣的同学可以立刻动手试下。
关于参与到Apache开源社区
Apache Zeppelin的Kylin模块是本人和同事一起合作开发并提交到Zeppelin社区的,可能有很多开发者也很想参与到开源项目中来但是不太熟悉流程,本人结合自己经验简单介绍下希望能够对不熟悉的朋友有所帮助。
所有Zeppelin的项目都放在GitHub上,我们只需要把代码fork过来在本地开发测试好,然后再pull request即可。Zeppelin会有其他开发者一起帮忙review你的代码,代码中的错误,Test Case等都会影响代码的合并。Zeppelin中加入了checkstyle 插件,稍微有点格式不符合定义的规范就无法通过,要把这些基本的配置好,在本地跑maven命令保证编译和测试通过没有错误再pull request。
另外一个好的习惯是订阅Apache项目的邮件列表,这样才能及时看到项目的开发信息,有问题直接在里面提会有很好的响应。关于Apache Kylin的邮件列表这个页面有详细说明(http://kylin.apache.org/community/)。如果想参与到Apache Zeppelin社区,可阅读下这个页面 (https://zeppelin.incubator.apache.org/docs/development/howtocontribute.html)。
关于参与到Apache开源社区的益处有很多,一方面,可以实时看到项目的进展,与核心开发者互动,对项目的了解会更加深入,这种互动的过程是比只看书或网上浏览要好很多,也比通过Google搜索问题要高效很多。其次,所有的交流都是基于英文的,对于国内开发者可以在交流技术的同时把自己的英文也提高,建议不要用中文提问,因为我们面对的是全球各地的开发者,英文可以让更多的人参与进来。
作者简介
仲俭,Apache Kylin PMC 成员,eBay软件工程师,目前主要专注于Kylin的前端及REST Service,Apache Zeppelin中Kylin Interpreter模块主要开发者,12年加入eBay从事自动化工具开发,14年加入Kylin小组,致力为Kylin社区提供支持和帮助。



楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-4 03:02

Powered by BI168大数据社区

© 2012-2014 168大数据

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