基于阿里云HBase产品的游戏大数据实践

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
日志服务 SLS,月写入数据量 50GB 1个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本文介绍了厦门点触科技股份有限公司使用阿里云HBase建立游戏大数据平台的实践。

大数据架构

我们团队大数据方案主要参考阿里巴巴大数据方案并结合自身特点量身定做,像阿里巴巴大数据体系架构一样也分四层,只是内容有所简化和差异。其实多数大数据架构方案都略同,只是在细节上有所差异。
_

  1. 数据采集层:数据来源有两种——客户端埋点日志和服务端请求处理日志。最终这些日志都是以日志聚合的形式,经过消息队列中间件缓存,最终汇总到数据湖。
  2. 数据计算层:市面上有多种离线和实时计算引擎,从技术生态成熟度来说Spark相对完善,我们选择了Spark生态技术栈。数据加工链路与阿里巴巴数据计算层类似分为操作数据层(Operational Data Store, ODS)、明细数据层(Data Warehouse Detail, DWD)、汇总数据层(Data Warehouse Summary, DWS)和应用数据层(Application Data Store, ADS),元数据管理和数据质量处理还有待完善。
  3. 数据服务层:数据服务层对底层数据存储透明,面向数据应用层开放海量数据,并对外提供统一的数据服务平台,通过接口提供数据查询服务和实时数据推送服务。
  4. 数据应用层:以应用的形式提供数据可视化,支持各种应用场景的数据分析,为运营、发行、策划提供宏观决策支撑。

基于HBase大数据解决方案

核心需求

  1. 支持高性能离线计算和实时计算;
  2. 管理数据作业调度;
  3. 支持弹性伸缩计算(节省成本);
  4. 支持冷热存储(节省成本);
  5. 满足数据湖场景,支持高吞吐海量存储结构化和非结构化数据;
  6. 支持即席查询。

技术选型

2018年10月阿里云正在研发HBase产品,我们团队当时正在准备做大数据方案,阿里云HBase技术团队找我们探讨解决方案合作,经过讨论和分析我们认为HBase产品基本能满足游戏大数据业务。HBase产品具有以下优势:托管基础设施运维;将Hadoop核心功能精简为Spark和HBase;使计算与存储分离;高吞吐、高性能、高容量。

HBase产品演化

2018年10月,HBase产品刚上线时主要提供HBase、Phoenix和Spark等核心功能,我们团队向阿里云HBase团队反馈了一些业务场景的需求,随后HBase产品不断新增辅助功能:完善作业提交服务LivyServer,数据工作台支持可视化工作流编排,基于数据湖非结构化数据存储分析的需求提供访问HDFS,提供Zeppelin交互式查询便于开发调试。至2019年4月,HBase产品已经趋于完善,只有弹性伸缩计算这个需求还没有支持,而此时我们团队的大数据方案也基本伴随HBase产品的成熟逐渐落地。

日志聚合

日志采集工具

日志聚合其实是在微服务体系下衍生的产物,也是大数据处理的第一个环节。我们选用Flume和Kafka作为日志采集工具建立日志数据流,虽然这是个经典方案但没看到多少资料解释为什么要这样做,这里根据我们的业务场景补充说明,日志传输需要解决几个问题:解决生产者和消费者速率不匹配的问题,满足高可用、高吞吐、低延时,在数据仓库维护不可用时能缓存数据,支持在线水平扩展和维护,满足多样化数据过滤转换需求和数据扇入扇出。在各种日志收集工具中Flume的灵活性较强,可以满足各种场景的需求,而Kafka具有高可用、高吞吐、低延时的特性,这两种产品组合基本满足了大部分日志传输需求。

日志数据流

_

我们将游戏日志分为核心日志和非核心日志分开处理,核心日志用于计算核心业务指标,非核心日志用于自定义数据分析,分开处理是为了避免系统互相影响。核心日志是结构化数据,因此我们规范了核心日志生产者数据接口,核心日志投递主要通过Phoenix写入HBase,需要实时计算的日志则通过Spark Streaming处理后再写入HBase。非核心日志提供灵活的自定义日志方式,因此数据处理量要比核心日志大的多,为减轻服务端压力我们采用推拉结合的方式,先将日志以文件形式传到NAS,再由Flume从NAS中拉文件再投递到HDFS,如果需要实时计算则传到Kafka经过Spark Streaming再投递到HBase,其中还有部分日志用于追踪系统异常则需要传到Elasticsearch,通过Kibana查询日志。

数据湖

数据湖是一种大型集中式存储库和处理引擎,允许以任意规模存储所有结构化和非结构化数据,拥有强大的信息处理能力和处理几乎无限的并发任务或工作的能力,运行不同类型的分析——从控制面板和可视化到大数据处理、实时分析和机器学习,以指导业务做出更好的决策。与传统数据仓库的重要区别是数据湖可以处理非结构化数据,为后期的机器学习和预测分析提供帮助,而且日志可以更灵活的形式存储,提高数据创新使用效率。基于这种需求,我们需要使用HDFS存储非结构化数据,HBase正好产品规划也包含了这块功能,存储集群HDFS和HBase结合计算集群Spark基本满足了数据湖的需求。

参考资料

  • 《大数据之路 阿里巴巴大数据实践》,阿里巴巴数据技术及产品部著,电子工业出版社
相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
Java 大数据 分布式数据库
Spring Boot 与 HBase 的完美融合:探索高效大数据应用开发的新途径
【8月更文挑战第29天】Spring Boot是一款广受好评的微服务框架,以其便捷的开发体验著称。HBase则是一个高性能的大数据分布式数据库系统。结合两者,可极大简化HBase应用开发。本文将对比传统方式与Spring Boot集成HBase的区别,展示如何在Spring Boot中优雅实现HBase功能,并提供示例代码。从依赖管理、连接配置、表操作到数据访问,Spring Boot均能显著减少工作量,提升代码可读性和可维护性,使开发者更专注业务逻辑。
369 1
|
9月前
|
SQL Java 分布式数据库
实时计算 Flink版产品使用合集之可以支持批量写入HBase吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
89 2
|
5月前
|
存储 分布式计算 分布式数据库
深入理解Apache HBase:构建大数据时代的基石
在大数据时代,数据的存储和管理成为了企业面临的一大挑战。随着数据量的急剧增长和数据结构的多样化,传统的关系型数据库(如RDBMS)逐渐显现出局限性。
838 12
|
9月前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
350 7
|
6月前
|
分布式计算 大数据 分布式数据库
"揭秘HBase MapReduce高效数据处理秘诀:四步实战攻略,让你轻松玩转大数据分析!"
【8月更文挑战第17天】大数据时代,HBase以高性能、可扩展性成为关键的数据存储解决方案。结合MapReduce分布式计算框架,能高效处理HBase中的大规模数据。本文通过实例展示如何配置HBase集群、编写Map和Reduce函数,以及运行MapReduce作业来计算HBase某列的平均值。此过程不仅限于简单的统计分析,还可扩展至更复杂的数据处理任务,为企业提供强有力的大数据技术支持。
104 1
|
7月前
|
存储 NoSQL 大数据
大数据存储:HBase与Cassandra的对比
【7月更文挑战第16天】HBase和Cassandra作为两种流行的分布式NoSQL数据库,在数据模型、一致性模型、数据分布、查询语言和性能等方面各有千秋。HBase适用于需要强一致性和与Hadoop生态系统集成的场景,如大规模数据处理和分析。而Cassandra则更适合需要高可用性和灵活查询能力的场景,如分布式计算、云计算和大数据应用等。在实际应用中,选择哪种数据库取决于具体的需求和场景。希望本文的对比分析能够帮助读者更好地理解这两种数据库,并做出明智的选择。
|
7月前
|
存储 Java 分布式数据库
使用Spring Boot和HBase实现大数据存储
使用Spring Boot和HBase实现大数据存储
|
8月前
|
Oracle 关系型数据库 数据处理
实时计算 Flink版产品使用问题之如何进行Oracle到HBase的同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
存储 大数据 分布式数据库
使用Apache HBase进行大数据存储:技术解析与实践
【6月更文挑战第7天】Apache HBase,一个基于HDFS的列式存储NoSQL数据库,提供高可靠、高性能的大数据存储。其特点是列式存储、可扩展至PB级数据、低延迟读写及多版本控制。适用场景包括大规模数据存储、实时分析、日志存储和推荐系统。实践包括集群环境搭建、数据模型设计、导入、查询及性能优化。HBase在大数据存储领域扮演关键角色,未来有望在更多领域发挥作用。
|
8月前
|
Java 大数据 API
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
168 0
【大数据】HDFS、HBase操作教程(含指令和JAVA API)