热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

kylin引擎

ApacheKylin是一个开源的分布式分析引擎。完全由eBayInc.中国团队开发并贡献至开源社区。提供Hadoop之上的SQL查询接口及多维分析(MOLAP&#x



Apache Kylin是一个开源的分布式分析引擎。完全由eBay Inc.中国团队开发

并贡献至开源社区。提供Hadoop之上的SQL查询接口及多维分析(MOLAP)能力以

支持大规模数据能在亚秒内查询巨大的Hive表(十亿百亿的海量数据)。

Apache Kylin社区发展


大数据分析面临的挑战

Huge volume data

Table scan

Big table joins

Data shuffling

Analysis on different granularity

Runtime aggregation expensive

Map Reduce job

Batch processing

High Concurrency


Kylin安装

Centos 6.x

NTP

hadoop集群

-v2.5

-HDFS

-MapReduce

HBase安装

-v1.1.3

Hive安装

-v1.2.1或者v2.0

Kylin

-v1.5.1 HBase1.1.3


Cube的构建

Segment

HBase的表

全量构建

增量构建

时间粒度可以很小--准实时

达到阀值多个小Segment Merge成大的Segment


百度地图应用的集群

软件环境:

CDH+Hive+HBase+Kylin0.71

硬件环境:

Kylin共四台;

1台master(100G内存)+3台slaves(30G内存)



Kylin的展望


Apache Kylin 有多牛?

Apache Kylin 是一个开源的分布式引擎,为Hadoop等大型分布式数据平台之上的超大规模数据集通过标准SQL查询及多维分析(OLAP)功能,提供压秒级的交互式分析能力。

在现在的大数据时代,越来越多的企业开始使用Hadoop管理数据,但是现有的业务分析工具(如Tableau,Microstrategy等)往 往存在很大的局限,如难以水平扩展、无法处理超大规模数据、缺少对Hadoop的支持;而利用Hadoop做数据分析依然存在诸多障碍,例如大多数分析师 只习惯使用SQL,Hadoop难以实现快速交互式查询等等。神兽Apache Kylin就是为了解决这些问题而设计的。

Apache Kylin,中文名麒(shen)麟(shou) 是Hadoop动物园的重要成员。Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。它提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持大 规模数据,能够处理TB乃至PB级别的分析任务,能够在亚秒级查询巨大的Hive表,并支持高并发。

Apache Kylin于2014年10月在github开源,并很快在2014年11月加入Apache孵化器,于2015年11月正式毕业成为Apache顶级项 目,也成为首个完全由中国团队设计开发的Apache顶级项目。于2016年3月,Apache Kylin核心开发成员创建了Kyligence公司,力求更好地推动项目和社区的快速发展。

Kylin的基本原理和架构

Kylin的核心思想是预计算,即对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube,供查询时直接访问。把高复杂度的聚合运算、多表连接等操作转换成对预计算结果的查询,这决定了Kylin能够拥有很好的快速查询和高并发能力。


说到Cube的构建,Kylin提供了一个称作Layer Cubing的算法。简单来说,就是按照

dimension数量从大到小的顺序,从Base Cuboid开始,依次基于上一层Cuboid的结果进行再聚合。每一层的计算都是一个单独的Map Reduce任务。


MapReduce的计算结果最终保存到HBase中,HBase中每行记录的Rowkey由dimension组成,measure会保存在column family中。为了减小存储代价,这里会对dimension和messure进行编码。查询阶段,利用HBase列存储的特性就可以保证Kylin有良好的快速响应和高并发。
有了这些预计算的结果,当收到用户的SQL请求,Kylin会对SQL做查询计划,并把本该进行的Join、Sum、Count Distinct等操作改写成Cube的查询操作。
Kylin提供了一个原生的Web界面,在这里,用户可以方便的创建和设置Cube、管控Cube构建进度,并提供SQL查询和基本的结果可视化。
根据公开数据显示,Kylin的查询性能不只是针对个别的SQL,而是对上万种SQL的平均表现,生产环境下90%file查询能够在3s内返回。在上个月举办的Apache Kylin Meetup中,来自美团、京东、百度等互联网公司分享了他们的使用情况。例如在京东云海的案例中,单个Cube最大有8个维度,最大数据条数4亿,最大存储空间800G,30个Cube共占存储空间4 T左右。查询性能上,当QPS在50左右,所有查询平均在200ms以内,当QPS在200左右,平均响应时间在1s以内。
目前,有越来越多的国内外公司将Kylin作为大数据生产环境中的重要组件,如eBay、银联、百度、中国移动等。
Kylin的最新特性
Kylin的最新版本1.5.X引入了不少让人期待的新功能,可扩展架构将Kylin的三大依赖(数据源、Cube引擎)彻底解耦。Kylin将不再直接依赖于Hadoop/HBase/Hive,而是把Kylin作为一个可扩展的平台暴露抽象接口,具体的实现以插件的方式指定所用的数据源、引擎和存储。
开发者和用户可以通过定制开发,将Kylin接入除Hadoop/HBase/Hive以外的大数据系统,比如用kafka代替Hive作数据源,用Spark代替MR做计算引擎,用Cassandra代替HBase做存储,都将变得更为简单。这也保证了Kylin可以随平台技术一起演进,紧跟技术潮流。
在Kylin1.5.x中还对HBase存储结构进行了调整,将大的Cuboid分片存储,将线性扫描改良为并行扫描。基于上万查询进行了测试对比结果显示,分片的存储结构能够极大提速原本较慢的查询5-10倍,但对原本较快的查询提速不明显,综合起来平均提速2倍左右。
除此之外,1.5.x还引入了Fast cubing算法,利用Mapper端计算先完成大数据聚合,再将聚合后的结果交给Reducer,从而降低网络瓶颈的压力。对500多个Cube任务的实验显示,引入Fast cubing后,总体的Cube构建任务提速1.5倍。
kylin的用途
Apache Kylin旨在减少Hadoop在10亿及百亿规模以上数据级别的情况下的查询延迟,目前底层数据存储基于HBase,具有较强的可伸缩性。Apache Kylin为Hadoop数据提供了ANSI-SQL接口,并且支持大多数的ANSI-SQL的函数;能够支持在秒级别延迟的情况下同Hadoop进行交互式查询;支持多维联机分析处理数据仓库(MOLAP Cube);用户能够定义数据模型;并且通过Apache Kylin能够预建超过10多亿行原始记录的数据模型;可与其他BI工具无缝集成,包括Tableau,Excel,PowerBI等;并提供了JDBC,ODBC接口;可分布式部署,Query Server可以水平扩展,存储基于HBase也可以水平扩展。并且Apache Kylin将在后续版本支持流式近实时Cube计算,支持实时数据多维分析等各种场景。
Kylin的特点
可扩展超快OLAP引擎
Hadoop ANSI SQL接口
交互式查询能力
多维立方体(MOLAP Cube)
与BI工具无缝结合
其他特性;
Job管理与监控
压缩与编码
增量更新
Kylin核心:Kylin OLAP引擎基础框架,包括元数据(Metadata)引擎,查询引擎,Job引擎以及存储引擎等,同时包括REST服务器以响应客户端请求
扩展:支持额外功能和特性的插件
整合:与调度系统,ETL,监控等生命周期管理系统的整合
用户界面:在Kylin核心之上扩展第三方用户界面
驱动:ODBC和JDBC驱动以支持不同的工具和产品,比如Tableau












推荐阅读
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 揭秘双11丝滑般剁手之路背后的网络监控技术
    概要:刚刚结束的2020天猫双11中,MaxCompute交互式分析(下称Hologres)实时计算Flink搭建的云原生实 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • 这篇文章给大家分享的是有关kylin怎样安装使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 环境我选的kylin版 ... [详细]
  • 11月26日,由中国计算机协会(CCF)主办,CCF大数据专家委员会协办,CSDN承办的Hadoop与大数据技术大会(Hadoop&BigDataTechnology ... [详细]
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
  •        在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下:       1、CentOS6.7下安装JDK,地址:http:b ... [详细]
  • Java开发实战讲解!字节跳动三场技术面+HR面
    二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • MapReduce工作流程最详细解释
    MapReduce是我们再进行离线大数据处理的时候经常要使用的计算模型,MapReduce的计算过程被封装的很好,我们只用使用Map和Reduce函数,所以对其整体的计算过程不是太 ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • Hadoop——Hive简介和环境配置
    一、Hive的简介和配置1.简介Hive是构建在Hadoop之上的数据操作平台lHive是一个SQL解析引擎,它将SQL转译成MapReduce作业,并 ... [详细]
author-avatar
lock2502898047_947
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有