热门标签 | 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


推荐阅读
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 分布式一致性算法:Paxos 的企业级实战
    一、简介首先我们这个平台是ES专题技术的分享平台,众所周知,ES是一个典型的分布式系统。在工作和学习中,我们可能都已经接触和学习过多种不同的分布式系统了,各 ... [详细]
  • Hadoop的分布式架构改进与应用
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 对于非计算机专业背景的开发者而言,如何快速掌握.NET基础知识以应对技术面试是一个挑战。本文将提供一系列实用建议,帮助读者在短时间内提高.NET基础水平。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • Hadoop——实验七:MapReduce编程实践
    文章目录一.实验目的二.实验内容三.实验步骤及结果分析 1.基于ubuntukylin14.04(7)版本,安装hadoop-eclipse-kepler-plugi ... [详细]
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社区 版权所有