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.结束语
这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!
Hadoop - Kylin On OLAP的更多相关文章
- Hadoop在线分析处理(OLAP)
数据处理与联机分析处理 ( OLAP ) 联机分析处理是那些为了支持商业智能,报表和数据挖掘与探索等业务而开展的工作.这类工作的样例有零售商按地区和季度两个维度计算门店销售额,银行按语言和月份两个维度 ...
- 【转】Kylin系列-使用Saiku+Kylin构建多维分析OLAP平台
关于Kylin的介绍和使用请参考之前的文章 <分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例> Kylin对外提供的是SQL查询接口,基于Kylin构建OL ...
- Hadoop + Hive + HBase + Kylin伪分布式安装
问题导读 1. Centos7如何安装配置? 2. linux网络配置如何进行? 3. linux环境下java 如何安装? 4. linux环境下SSH免密码登录如何配置? 5. linux环境下H ...
- kylin(一): 原理架构
由eBay开源的一个大数据OLAP框架,2014年11月加入了Apache,项目名字也改成了"Apache Kylin",Apache Kylin是唯一来自中国的Apache顶级开 ...
- [kylin] 部署kylin服务
一.工具准备 zookeeper3.4.6 (hadoop.hbase 管理工具) Hadoop. Hbase1.1.4 Kylin1.5.0-HBase1.1.3 Jdk1.7.80 Hive 二. ...
- Hadoop 生态系统
1.概述 最近收到一些同学和朋友的邮件,说能不能整理一下 Hadoop 生态圈的相关内容,然后分享一些,我觉得这是一个不错的提议,于是,花了一些业余时间整理了 Hadoop 的生态系统,并将其进行了归 ...
- 【转】Apache Kylin 2.0为大数据带来交互式的BI
本文转载自:[技术帖]Apache Kylin 2.0为大数据带来交互式的BI 编者注:Kyligence的联合创始人兼CEO Luke Han在上做题为“”的演讲. 基于Hadoop的SQL一直在被 ...
- Kylin web界面 知识点介绍
Big Data Era: 1.More and more data becoming available on Hadoop2.Limitations in existing Business ...
- Python + Apache Kylin 让数据分析更加简单!
现如今,大数据.数据科学和机器学习不仅是技术圈的热门话题,也是当今社会的重要组成.数据就在每个人身边,同时每天正以惊人的速度快速增长,据福布斯报道:到 2025 年,每年将产生大约 175 个 Zet ...
随机推荐
- Linux 配置主机名
方法 1:临时配置 [root@NING ~]# hostname NING CRT重新连接即可,服务器重启失效. 方法 2:永久配置 步骤1:包含了主机最基本的网络信息,用于系统启动. [root@ ...
- elixir 高可用系列(一) Agent
概述 elixir 本身是一种 immutable 的语言,默认情况下,进程间是不共享任何状态的,进程之间通过消息来交互. 而 Agent 则封装了一种进程间共享状态的方式,通过这种方式,不用显式的写 ...
- [WinAPI] API 12 [获取程序所在的目录、程序模块路径,获取和设置当前目录]
Windows系统提供一组API实现对程序运行时相关目录的获取和设置.用户可以使用GetCurrentDirectory和SetCurrentDirectory获取程序的当前目录,获取模块的路径使用G ...
- [C++] C\C++ printf 输出格式
1.转换说明符 %a(%A) 浮点数.十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 % ...
- 我的cookie读写
前后台必须一致, 后台: public static void SetCookie(string cookieName, string value, int expiresDays){ var ...
- Atitit.java eval功能的实现 Compiler API
Atitit.java eval功能的实现 Compiler API 输出echo2 输出目录配置2 针对编译器,JDK 设计了两个接口,分别是 JavaCompiler 和JavaCompiler ...
- 生成月初月末便于拼接sql
for ($i=1; $i < 13; $i++) { $date = strtotime(date("2015-$i-01")); $firstday = date(&qu ...
- SQL Server 批量插入数据的方法
运行下面的脚本,建立测试数据库和表. --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Tabl ...
- 关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别(新版)
前言: find 命令一直都是系统管理员的常用命令之一, 其参数中 "-exec" 尤其实用.而 "xargs" 命令,针对查询也有属于自己的见解.本文着重讲解 ...
- Transistor 晶体管 场效应 双极型 达林顿 CMOS PMOS BJT FET
Transistor Tutorial Summary Transistor Tutorial Summary Bipolar Junction Transistor Tutorial We can ...