Hadoop - Kylin On OLAP
1.概述
Apache Kylin是一个开源的分布式分析引擎,提供SQL接口并且用于OLAP业务于Hadoop的大数据集上,该项目由eBay贡献于Apache。
2.What is Kylin
在使用一种模型,我们得知道她是干什么的,那么首先来看看Kylin的特性,其内容如下所示:
- 可扩展超快的OLAP引擎:Kylin是为减少在Hadoop上百亿级别数据查询延迟而设计的。
- Hadoop ANSI SQL接口:Kylin为Hadoop提供标准的SQL,其支持大部分查询功能。
- 出色的交互式查询能力:通过Kylin,使用者可以于Hadoop数据进行亚秒级交互,在同样的数据集上提供比Hive更好的性能。
- 多维度Cube:用户能够在Kylin里为百亿以上的数据集定义数据模型并构建Cube。
- 和BI工具无缝整合:Kylin提供与BI工具,如商业化的Tableau。另外,根据官方提供的信息也在后续逐步提供对其他工具的支持。
- 其他特性:
- 对Job的管理和监控
- 压缩和编码的支持
- 增量更新Cube
- 利用HBase Coprocessor去查询
- 基于HyperLogLog的Distinct Count近似算法
- 友好的Web界面用于管理、监控和使用Cube
- 项目及Cube级别的访问控制安全
- 支持LDAP
3.ECOSYSTEM
Kylin有其自己的生态圈,如下图所示:
从上图中,我们可以看到,Kylin的核心包含:Kylin OLAP引擎基础框架,Metadata引擎,查询引擎,Job引擎以及存储引擎等等,同时还包括REST服务器以响应客户端请求。另外,还扩展支持额外 功能和特性的插件,同时整合与调度系统、ETL、监控等生命周期管理系统。在Kylin核心之上扩展的第三方用户界面,ODBC和JDBC驱动用以支持不 同的工具和产品,如:Tableau。
4.Architecture
Kylin的架构概述图如下所示:
图中的执行流程很清楚,客户端(REST API或JDBC/ODBC)发送SQL请求,将其交给Kylin的执行引擎去处理,Kylin去拉去对应的数据来做处理,并返回处理结果,这里 Kylin需要依赖HBase。复杂的事情,Kylin的引擎都给我们处理了,我们只需要负责去编写我们的业务SQL。
5.How TO Works
在Kylin中,我们可以处理三维的业务查询,如下图所示:
在明白了业务处理方向,其生态群和架构。我们要如何去集成该系统到Hadoop集群?关于Kylin的集成过程是比较方便的,Kylin需要Hadoop、Hive、HBase、JDK,另外,对版本也是有要求的。本版要求如下:
- Hadoop:2.4 - 2.7
- Hive:0.13 - 0.14
- HBase:0.98(这里若是选择Kylin-1.2,需要用到HBase-1.1+以上)
- JDK1.7+
另外,安装Kylin步骤也是比较简单的,步骤如下所示:
- 下载最新的安装包,地址如下:[Kylin.tar.gz]
- 设置KYLIN_HOME环境变量
- 确保用户有权限去访问Hadoop、Hive和HBase,如果不确定的话,我们可以在安装包的bin目录下运行check-env.sh脚本,如果我们有问题的话,她会打印详细的信息。
- 最后,我们可以通过kylin.sh start去启动Kylin,或者使用kylin.sh stop去停止Kylin
在Kylin启动之后,我们可以通过输入http://node_hostname:7070/kylin去访问Kylin,登录默认用户名和密码为:ADMIN/KYLIN
预览截图如下所示:
另外,我们可以通过JDBC去操作,代码片段如下所示:
Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance(); Properties info = new Properties(); info.put("user", "ADMIN"); info.put("password", "KYLIN"); Connection conn = driver.connect("jdbc:kylin://dn1:7070/kylin_project_name", info); Statement state = conn.createStatement(); ResultSet resultSet = state.executeQuery("select * from test_table"); while (resultSet.next()) { assertEquals("foo", resultSet.getString(1)); assertEquals("bar", resultSet.getString(2)); assertEquals("tool", resultSet.getString(3)); }
6.总结
在使用Kylin时,我们有必要去首先熟悉其架构,这能让我们更加熟悉其应用场景和业务场景。在集成和使用的过程当中会遇到一些问题,我们可以分析其异常日志,然后利用搜索引擎得到解决。关于Kylin的详细使用,大家可以参考官方撰写的文档。
7.结束语
这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hadoop - Azkaban 作业调度
1.概述 在调度 Hadoop 的相关作业时,有以下几种方式: 基于 Linux 系统级别的 Crontab。 Java 应用级别的Quartz。 第三方的调度系统。 自行开发 Hadoop 应用调度系统。 对于前两种,使用 Crontab 和Quartz 是基本可以满足业务需求,但有其弊端。在 Job 数量庞大的情况下,Crontab 脚本的编写,变得异常复杂。其调度的过程也不能透明化,让管理变得困难。Quartz 虽然不用编写脚本,实现对应的调度 API 即可,然其调度过程不透明,不涵盖 Job 运行详情。需自行开发其功能。 因而,第三方的调度系统便应运而生了。在《Hadoop - 任务调度系统比较》一文中,介绍第三方调度系统之间的差异。这里笔者就不多赘述了。本篇博文,笔者给大家介绍 Azkaban 的相关使用心得,以及在使用中遇到的种种问题和解决思路。 2.内容 Azkaban 托管在 Github 上,属于开源产品。它由以下几部分组成: Web Server ExecutorServer MySQL Plugins(HDFS,JobType,HadoopSecurityMana...
- 下一篇
Spark-数据分析可视化Zeppelin
官网介绍 Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接入不同的数据处理引擎,包括Spark, hive, tajo等,原生支持scala, Java, shell, markdown等。它的整体展现和使用形式和Databricks Cloud是一样的。 安装 其他组件都是好安装的,直接mvn install是没问题的。 而且zeppelin-web项目,里面使用了node, grunt, bower这些前端的工具。可以自己源码编译也可以使用二进制包直接使用。目前官网最新的版本是0.5.6版本,支持spark1.5和hadoop2.x版本。 自己编译: - 安装好node, grunt, bower brew install npm npm install -g node 修改pom <plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifac...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境