本篇博客重点介绍如何使用Kylin来构建大数据分析平台。根据官网介绍,其实部署Kylin非常简单,称为非侵入式安装,也就是不需要去修改已有的

Hadoop大数据平台。你只需要根据的环境下载适合的Kylin安装包,选择一个Hadoop节点部署即可,Kylin使用标准的Hadoop API跟各个组件进行通信,不需要对现有的Hadoop安装额外的Agent。

Kylin部署的架构是一个分层的结构,最底层是数据来源层,我们可以通过Sqoop等工具将数据迁移到HDFS分布式文件系统。Kylin依赖Hadoop平台,包括组件HBase,Hive,MapReduce等,即Kylin运行在Hadoop构建的大数据层之上,Kylin平台部署好之后,业务系统连接Kylin,Kylin就把压力发布到Hadoop上做并行计算和查询。

对于Kylin的部署架构,一般都四种典型部署方式,从简单到复杂。

1. 第一种方式:

单实例部署方式(Single instance)。在Hadoop集群的一个节点上部署,然后启动即可。建模人员通过Kylin Web登录,进行建模和创建Cube。业务分析系统等发送SQL到Kylin,Kylin查询Cube并返回结果。

这种部署最大特点是简单快捷,而是单点,如果并发请求比较多(QPS > 50),单台Kylin节点将成为瓶颈,所以推荐使用集群(Cluster)部署方式。

2. 第二种方式:

Kylin部署集群方式相对来说也简单,只需要增加Kylin的节点数,因为Kylin的元数据(Metadata)是存储在HBase中,只需要在Kylin中配置,让Kylin的每个节点都能访问同一个Metadata表就形成了Kylin集群(kylin.metadata.url 值相同)。并且Kylin集群中只有一个Kylin实例运行任务引擎(kylin.server.mode=all),其它Kylin实例都是查询引擎(kylin.server.mode=query)模式。通常可以使用LDAP来管理用户权限。

为了实现负载均衡,即将不同用户的访问请求通过Load Balancer(负载均衡器)(比如lvs,nginx等)分发到每个Kylin节点,保证Kylin集群负载均衡。对于负载均衡器可以启用SSL加密,安装防火墙,对外部用户只用暴露负载均衡器的地址和端口号,这样也保证Kylin系统对外部来说是隔离的。

我们的生产环境中使用的LB是nginx,用户通过LB的地址访问Kylin时,LB将请求通过负载均衡调度算法分发到Kylin集群的某一个节点,不会出现单点问题,同时如果某一个Kylin节点挂掉了,也不会影响用户的分析。

这种方式也不是完美的,但是一般场景下是可以满足的。

3. 第三种方式:

Kylin非常适合读写分离,原因是Kylin的工作负载有两种:

  • Cube的计算,调用MapReduce进行批量计算,而且延时很长的计算,需要密集的CPU和IO资源
  • 在线的实时查询计算,就是Cube计算结束后进行查询,而且都是只读的操作,要求响应快,延迟低。

通过分析,我们发现第一种Cube的计算会对集群带来很大负载,从而会影响在线的实时查询计算,所有需要做读写分离。如果你的环境,基本都是利用夜间执行Cube计算,白天上班时间进行查询分析,那么可以考虑采用第二种部署方式。

其实Kylin也很容易部署这种组网方式。你需要单独部署一套HBase集群,在部署Kylin时,Hadoop配置项指向运算的集群,HBase的配置项指向单独部署的HBase集群。说白了,就是Hadoop和HBase集群的分离。

这种部署方式通常有以下步骤:

步骤一:分布部署Hadoop(MapReduce计算集群,以下简称计算)集群和HBase(HDFS存储,以下简称存储)集群;两套集群环境的Hadoop核心版本要一致,分别有各自的HDFS、Zookeeper等组件;

步骤二:在准备运行Kylin的服务器上,安装和配置Hadoop(计算)集群的客户端;通过 hadoop , hdfs , hive , mapred 等命令,可以访问Hadoop集群上的服务和资源;

步骤三:在准备运行Kylin的服务器上,安装和配置HBase(存储)集群的HBase客户端;通过 hbase 命令,可以访问和操作HBase集群;

步骤四:确保Hadoop(计算)集群和HBase(存储)集群的网络互通,且无需额外验证;可以从Hadoop(计算)集群的任一节点上,拷贝文件到HBase(存储)集群的任一节点;

步骤五:确保在准备运行Kylin的服务器上,通过hdfs命令行加上HBase集群NameNode地址的方式(比如hdfs dfs -ls hdfs://pro-jsz800000:8020/),可以访问和操作存储集群的HDFS。

步骤六:为了提升Kylin查询响应效率,准备运行Kylin的服务器,在网络上应靠近HBase集群,以确保密集查询时的网络低延迟;

步骤七:编辑conf/kylin.properties,设置 kylin.hbase.cluster.fs 为HBase集群HDFS的url,例如:kylin.hbase.cluster.fs=hdfs://pro-jsz800000:8020

步骤八:重启Kylin服务实例

4. 第四种方式:

前面三种方式,应该是绝大多数公司或个人研究采用的部署方式,其实还有一种更高级的部署是Staging和production多环境的部署。其实做开发的一般都会经历这样的环境,我们一个需求完成后,首先会进行开发环境测试,然后部署到Staging(可以理解为Production生产环境的镜像,或者测试环境),最后没有问题后才会发布到Production生产环境,这样做可以避免不当的设计导致对生产环境的破坏。

使用这种方案的场景:

假如一个新用户使用Kylin,可能他对Cube设计不是很熟悉,创建了一个非常不好的Cube,导致Cube计算时产生大量的不必要的运算,或者查询花费的时间很长,会对其他业务造成影响。我们不希望这个有问题的Cube能进入生产环境,那么就需要建立一个Staging环境,或则成为QA的环境。

Kylin提供了一个工具,几分钟就可以将一个Cube从Staging环境迁移到Production环境,不需要在新环境中重新build。因为在生产环境的Cube,将不允许修改,只能做增量的build。这样做保证了Staging和Production的分离,保证发布到Production上的Cube都是经过评审过的,所以对Production环境不会造成不可预料的影响,从而保证了Production环境的稳定。

使用Kylin构建企业大数据分析平台的4种部署方式的更多相关文章

  1. 《基于Apache Kylin构建大数据分析平台》

    Kyligence联合创始人兼CEO,Apache Kylin项目管理委员会主席(PMC Chair)韩卿 武汉市云升科技发展有限公司董事长,<智慧城市-大数据.物联网和云计算之应用>作者 ...

  2. 【转】使用Apache Kylin搭建企业级开源大数据分析平台

    http://www.thebigdata.cn/JieJueFangAn/30143.html 本篇文章整理自史少锋4月23日在『1024大数据技术峰会』上的分享实录:使用Apache Kylin搭 ...

  3. 使用Apache Kylin搭建企业级开源大数据分析平台

    转:http://www.thebigdata.cn/JieJueFangAn/30143.html 我先做一个简单介绍我叫史少锋,我曾经在IBM.eBay做过大数据.云架构的开发,现在是Kylige ...

  4. DevOps实践之一:基于Docker构建企业Jenkins CI平台

    基于Docker构建企业Jenkins CI平台 一.什么是CI 持续集成(Continuous integration)是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来 ...

  5. Net Core SignalR 测试,可以用于unity、Layair、白鹭引擎、大数据分析平台等高可用消息实时通信器。

    SignalR介绍 SignalR介绍来源于微软文档,不过多解释.https://docs.microsoft.com/zh-cn/aspnet/core/signalr/introduction?v ...

  6. CDH构建大数据平台-Kerberos高可用部署【完结篇】

    CDH构建大数据平台-Kerberos高可用部署[完结篇] 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.安装Kerberos相关的软件包并同步配置文件 1>.实验环境 ...

  7. Apache Kylin大数据分析平台的演进

    转:http://mt.sohu.com/20160628/n456602429.shtml 我是来自Kyligence的李扬,是上海Kyligence的联合创始人兼CTO.今天我主要来和大家分享一下 ...

  8. Apache Kylin在4399大数据平台的应用

    来自:AI前线(微信号:ai-front),作者:林兴财,编辑:Natalie作者介绍:林兴财,毕业于厦门大学计算机科学与技术专业.有多年的嵌入式开发.系统运维经验,现就职于四三九九网络股份有限公司, ...

  9. Clickhouse 在大数据分析平台 - 留存分析上的应用

    导语 | 本文实践了对于千万级别的用户,操作总数达万级别,每日几十亿操作流水的留存分析工具秒级别查询的数据构建方案.同时,除了留存分析,对于用户群分析,事件分析等也可以尝试用此方案来解决. 文章作者: ...

随机推荐

  1. 二十六、Java--------反射

    反射 正常情况下,我们必须知道一个类的完整路径后才可以实例化对象,但是在Java也可以通过一个对象来找到其所在类的信息,这其实就是Class的功能. 可以看到此时的所有操作都是反着来,这就是反射. p ...

  2. 定位和xml解析和gson解析加上拉加载,下拉刷新

    这里的上拉加载,下拉刷新用到是依赖包 Mainactivity,xml解析和定位 package com.exmple.autolayout; import java.util.List; impor ...

  3. WP 手机Lumia 820 锁屏密码的破解研究

    Windows Phone lumia 手机锁屏密码的破解研究     大家好今天给大家分享一个最新研究案例, 近日笔者接Nokia Lumia 820, 由于客户密码失误太多,导致锁屏23000余分 ...

  4. linux date时区修改

    # vi /etc/sysconfig/clock ZONE=Asia/Shanghai(查/usr/share/zoneinfo下面的文件)   [root@localhost ~]# dateFr ...

  5. HTTP请求 GET与POST是怎么实现?

    1.HTTP请求格式: <request line> <headers> <blank line> [<request-body>] 在HTTP请求中, ...

  6. Oracle12c CDB和PDB数据库的启动与关闭说明

    Oracle 12c中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB). CDB全称为Container Database,中文翻译为数据库容器,PDB ...

  7. 判断浏览器是pc端还是手机端

    1. 判断浏览器是pc端还是手机端 <script type="text/javascript"> var browser = { versions: function ...

  8. jsp中button与submit的用法

    button:可以对返回的数据进行格式化,反应到页面上,可以用form表单序列化提交也可以不用form表单提交 <form id="addForm"> <inpu ...

  9. 2016 icpc-ec-final

    一不小心惨变旅游队,不过上海的风景不错 顺带找其他队交流一下集训经验...或许可以成为选拔和集训16级的依据 A.直接模3就可以了,2^(3*n)%7=1 L.每场比赛3种情况,穷举就可以了 D.刚开 ...

  10. 类传奇手游简单Demo

    这是一年多前自己闲时以Unity2D制作的很粗糙简单的传奇类手游Demo(单机),已很久未作继续开发. 此小Demo初步完成或实现了如下功能(有诸多考虑欠妥甚至不完善之处): 1).图片资源打包方式. ...