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


推荐阅读
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Apache Hadoop HDFS QJournalProtocol 中 getJournalCTime 方法的应用与代码实例分析 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 【漫画解析】数据已删,存储空间为何未减?揭秘背后真相
    在数据迁移过程中,即使删除了原有数据,存储空间却未必会相应减少。本文通过漫画形式解析了这一现象背后的真相。具体来说,使用 `mysqldump` 命令进行数据导出时,该工具作为 MySQL 的逻辑备份工具,通过连接数据库并查询所需数据,将其转换为 SQL 语句。然而,这种操作并不会立即释放存储空间,因为数据库系统可能保留了已删除数据的碎片信息。文章进一步探讨了如何优化存储管理,以确保数据删除后能够有效回收存储空间。 ... [详细]
  • Zookeeper作为Apache Hadoop生态系统中的一个重要组件,主要致力于解决分布式应用中的常见数据管理难题。它提供了统一的命名服务、状态同步服务以及集群管理功能,有效提升了分布式系统的可靠性和可维护性。此外,Zookeeper还支持配置管理和临时节点管理,进一步增强了其在复杂分布式环境中的应用价值。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
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社区 版权所有