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

复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)

备注:本文是2018-06在链家的时候做的对外分享,现在纯搬运到知乎引言:海量数据背景下,业界普遍引入hadoophive等来解决大数据计算分析的需求,但随着大家对计算速度和灵活性

备注:本文是2018-06在链家的时候做的对外分享,现在纯搬运到知乎

引言:

海量数据背景下,业界普遍引入hadoop/hive等来解决大数据计算分析的需求,但随着大家对计算速度和灵活性的要求提高,业内涌现出各类引擎impala,sparksql,kylin等,贝壳根据自身业务需求,主要针对灵活查询,快速查询,实时查询分别选型spark sql,kylin,druid, 本次主要分享贝壳对这些引擎的实践,优化,及二次开发经验

关于我:

•13年 浙大软件工程毕业

•13-14年 百度商业平台部-风控平台研发

•15年至今 贝壳(原链家网)大数据集群及基础引擎建设

•专注于hadoop,hbase,kylin等生态组件,热爱开源,为社区贡献多个patch

•丰富的性能调优经验

目录:

•早期架构1.0

•OLAP简介

•快速可视化查询-指标平台(kylin)

•Adhoc灵活查询-Queryengine(spark sql+alluxio)

•Q&A

早期架构:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

•架构简单、just works

•需求驱动、case by base解决问题。

•固化Mysql难以存储大数据量

•查询原始hive速度慢、使用成本高

•实时数据分析无解

OLAP引擎分类:

•ROLAP(Relational OLAP)

– 基于关系模型,实时进行聚合计算

– 实现:传统数据库引擎/spark sql/presto

•MOLAP(Multi-dimension OLAP)

– 基于预定义模型,预先进行聚合计算,存储汇总结果

– 实现:Kylin/Druid

•HOLAP(Hybrid OLAP)

– 混合多引擎,不同场景路由到不同引擎

ROLAP:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

•优势

– 支持任意的sql查询

– 无数据冗余,一致性好

•缺点

– 大数据量及复杂查询返回慢

– 并发较差

•场景

– 灵活性很高的分析

MOLAP:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

•优势

– 支持超大原始数据集

– 快速返回,并发高

•缺点

– 不支持明细

– 需要预先定义维度和指标

•场景

– 能预知查询模式,并发有要求的场景

可视化(快速查询)选型:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

KYLIN简介:

Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

MOLAP解决方案

预先定义维度和指标

预计算cube,存储到hbase中

查询时解析sql路由到hbase中获取结果

KYLIN架构:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

Cube和Cuboid:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

Kylin存储模型:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

贝壳olap平台架构:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

自研kylin中间件:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

贝壳kylin的使用统计:

•定位:离线OLAP引擎

•800+ cube,覆盖公司16个业务线

•Cube存储总量200T+, 数据行数1600+亿行,单cube最大60+亿行

•日查询量100万+,时延<500ms(95%), <1s(99%)

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

ADHOC篇:

《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》
《复杂场景下大数据计算引擎选型与实践(OLAP/spark/alluxio)》

Alluxio使用经验:

•原生多层级置换有性能问题(代码里是单线程执行),建议单层

•不要超过缓存大小,避免大量miss

•性能优先:单层MEM或单层SSD,HDFS减负:单层HDD

•可在metastore层,进行路由(不走alluxio, 走ssd,走hdd)

•元数据缓存一致性问题

-checkConsistency

-alluxio.user.file.metadata.sync.interval


推荐阅读
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
庾承泓_689
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有