ApacheZeppelin与ApacheKylin结合运用实践

来源:CSDN 作者:网友

在大数据领域,有很多新兴或成熟的技术满足了我们对数据处理的各种需求,有专注于文件系统的,有专注于数据存储的,有解决资源协调问题,也有像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,可看到下图页面


blob.png

(注意,如果默认的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配置栏填上配置信息。

blob.png

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在超大规模数据集上的查询性能!

blob.png

多图表演示结果

blob.png

发布链接

对于查询结果Zeppelin可以将结果发布为一个链接,让你内嵌到其他需要的网页中,这个功能非常实用。实际应用中有很多需求需要把Kylin的查询结果做成Dashboard展示,结合Zeppelin这个功能可以直接省去相关开发工作,更有效的关注在数据及业务上。

blob.png

就这几步,非常简单,感兴趣的同学可以立刻动手试下。

关于参与到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搜索问题要高效很多。其次,所有的交流都是基于英文的,对于国内开发者可以在交流技术的同时把自己的英文也提高,建议不要用中文提问,因为我们面对的是全球各地的开发者,英文可以让更多的人参与进来。

附:

  1. Apache Kylin 主页:https://kylin.apache.org/

  2. Apache Zeppelin主页:https://zeppelin.apache.org/

  3. Apache Kylin Install:http://kylin.incubator.apache.org/docs/install/index.html


相关文档推荐

腾讯大数据基于StarRocks的向量检索探索.PDF

1737425434 赵裕隆 3.48MB 34页 积分6

B站一站式大数据集群管理平台.PDF

1737421412 刘明刚 1.37MB 30页 积分6

StarRocks在爱奇艺大数据场景的实践.PDF

1737365327 林豪 3.57MB 27页 积分5

农业农村大数据平台互联互通规范.PDF

1736163860  0.49MB 11页 积分5

工业大数据管理与治理智能制造的基座.PDF

1733702095 王宏志 3.83MB 54页 积分6

中国出海互联网公司数据保护合规对策.PDF

1732603379  2.22MB 14页 积分4

数据跨境现状调查与分析报告.PDF

1732603016  1.98MB 53页 积分5

企业数据合规指引个人信息保护指引.PDF

1732591271  15.22MB 23页 积分5

相关文章推荐

大数据开发流程及规范

网络收集 CIO之家的朋友 

大数据技术名词解释

51CTO CIO之家的朋友 

大数据常见问题之数据倾斜

CSDN CIO之家的朋友 

详解大数据批流处理中的两大架构

数仓宝贝库 韩锐、刘驰 

什么是大数据战略以及如何构建

51CTO CIO之家的朋友 

大数据的数据治理与应用场景

51CTO CIO之家的朋友