文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

服务架构:大数据架构

2024-11-30 11:08

关注

大数据架构是为处理超大数据量或复杂计算而设计的,流程上包括数据的获取、处理和分析。

大数据,可以简单理解为传统数据库无法处理的数据量,比如主从模式的MySQL在简单场景下可以存储和处理上亿条数据,但涉及到分析场景,能处理的数据量可能远远小于1亿。利用大数据架构,可以轻松处理上亿到千亿数据的分析需求。

大数据架构通常支持这些使用方式:

多数大数据架构会包含下面这些组件:

数据源

所有大数据解决方案都必须从数据源开始,数据源有很多种,比如:

这些数据均来自于大数据系统外部,经过数据清洗等流程存储到大数据系统。

数据存储

离线批处理的数据通常存储在分布式文件系统里,这些文件系统可以以不同的格式存储大量的大文件,比如块存储HDFS上单个block的大小可以是256MB,总体可存储PB量级的数据。当然,存储也分为对象存储和块存储,比如AWS S3是Amazon闭源的对象存储方案,在扩展性和小文件支持上有一些优势。

最近几年,这类分布式块存储或文件存储有一个更时髦的名字:数据湖。

批处理

由于数据量特别大,体现在数据条数多和占用磁盘空间大,大数据架构在应对分析场景时,通常采用耗时的批处理作业去处理数据,处理逻辑包括但不限于转换、过滤、聚合等。这些批处理任务通常会 1)读取源文件,2)处理数据,3)将结果写入新文件。可选的技术有基于MapReduce/Spark的SQL,或使用Java/Scala/Python等编写的MapReduce/Spark任务。

实时消息采集

如果数据源是实时的,那么架构上必须支持捕获并存储实时消息,以方便后面进行流式处理。使用的存储可以非常简单,比如直接append到一个目录下的文件里。但现实中并不会采用这个方案,而是使用一个消息存储充当buffer。这样就能支持多个下游子系统进行独立处理、保障数据不丢失、并获取消息排队的能力。

可选的技术有:Kafka、RocketMQ、RabbitMQ 等。

流式处理

从Source采集到实时消息以后,还需要对消息进行过滤、聚合等操作,用于后续的分析场景。流式数据被处理以后写入Sink。

在这个领域,Flink是名副其实的第一,Flink SQL也是阿里最近几年推行的重点方向,除此之外还有 Spark Structured Streaming,Storm 等技术方案。对比而言,Flink的生态更为完善,Streaming Warehouse也是基于Flink构建的。

分析型数据库

大数据系统的数据源通常是半结构化的数据,分析场景下为了保证性能,通常查询的是结构化的数据表。在传统商业BI系统中,数仓通常以Kimball维度数据仓库理念进行建模,分析型数据库支持在这种数据关系上的查询。相对于Inmon理念,Kimball偏向于保持source不变,中间层做join,最终给业务提供一张大宽表,以满足复杂多样的分析需求。Kimball理念下的数据表关系呈现出典型的星型结构:

除了存算一体的分析型数据库,还有其他方式,比如:

可选的技术有:交互式Hive、HBase、Spark SQL,目前流行的也有clickhouse、doris等能够榨干机器性能的报表工具。

数据分析和报表

大数据方案的目标多数是通过分析和报表提供对数据的洞察能力。为了增强分析功能,我们通常在架构中会包含一个数据建模层,比如一个多维OLAP cube表。基于Clickhouse 或 Excel,用户自己通过简单的拖拽或点点点,就能做报表。对于懂一些技术的数据科学家和分析师而言,Jupyter Notebook提供了更强大和弹性的交互式分析能力,使用Python或R 可以更自由地访问更大的数据集,可以更好地支持JOIN操作,也能将结果非常轻松地喂tensorflow/pytorch实现更高级的建模分析。

任务调度与编排

多数大数据方案都包含大量的重复计算。一个经典的工作流会包含:1)transform source 数据;2)在多个source和sink之间转移数据;3)将处理过的数据写入分析型数据库;4)将结果写入报表或仪表盘。为了把这些工作流自动化,我们可以使用一些编排工具,比如 Oozie、Sqoop 或大厂自研的那种。这些编排工具可以很好地处理任务的依赖关系,并严格按照依赖关系进行调度,通常也支持延迟报警、数据质量报警等功能。

上面讨论的这些功能组件,目前有很多开源的技术来支持,比如 Hadoop 系列中的 HDFS、HBase、Hive、Spark、Oozie、Sqoop、Kafka,向量分析数据库Clickhouse、Doris等。目前主流的云平台基本都支持这些开源组件,但也基本上都会自研一些,比如阿里的Max Compute等等。

应用场景

架构优势

有哪些挑战

最佳实践

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯