第19章大数据架构设计理论与实践学习笔记.docx

第19章大数据架构设计理论与实践学习笔记.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第19章大数据架构设计

理论与实践

学习笔记

传统数据处理系统存在的问题

数据库无法支撑日益增长的用户请求的负载,导致数据库服务器无法及时响应用户请求,导致出现超时错误。

在web服务器和数据库中间加入异步处理队列;

对数据库进行分区;

读写分离;

分库分表技术。

以上都无法彻底解决问题,依旧存在这样那样的问题,导致数据不一致,需要研究大数据架构设计。

大数据系统架构

大数据处理系统面临的挑战

处理结构化和非结构化数据;

大数据的复杂性和不确定性;

数据异构和决策异构

大数据处理系统结构设计的特征

鲁棒性和容错性;

低延迟读取和更新能力;

横向扩容;

通用性;

延展性;

即席查询能力;

最少维护能力;

可调试性。

Lambda架构

Lambda架构

Lambda是用于同时处理离线和实时数据,可容错、可扩展的分布式系统架构。

有批处理层、加速层、服务层。

同时以流计算和批处理计算合并视图。

Lambda架构的批处理层采用不可变存储模型,不断地往主数据集后追加新的数据。

Lambda架构的优缺点

优点

容错性好、查询灵活度高、易伸缩、易扩展。

缺点

全场景覆盖,编码开销;离线训练益处不大;重新部署和迁移成本很高。

Kappa架构

Lambda架构

只通过流计算产生视图,删除了批处理层,将数据通道以消息队列的方式代替。

实时层、服务层和数据层。

Lambda架构的优缺点

优点:

将实时和离线代码统一起来,方便维护而且统一了数据口径的问题,避免了Lambda架构中与离线数据合并的问题;

查询历史数据的时候只需要重放存储的历史数据即可。

缺点:

消息中间件缓存的数据量和回溯数据有性能瓶颈。通常算法需要过去180天的数据,如果都存在消息中间件,无疑有非常大的压力。同时,一次性回溯订正180天级别的数据,对实时计算的资源消耗也非常大。

在实时数据处理时,遇到大量不同的实时流进行关联时,非常依赖实时计算系统的能力,很可能因为数据流先后顺序问题,导致数据丢失。

Kappa在抛弃了离线数据处理模块的时候,同时抛弃了离线计算更加稳定可靠的特点。Lambda虽然保证了离线计算的稳定性,但双系统的维护成本高且两套代码带来后期运维困难。

Kappa架构与Lambda架构的区别

Kappa架构与Lambda相比,主要有两点区别:

(1)Kappa不是Lambda的替代架构,而是其简化版本,Kappa放弃了对批处理的支持,更擅长业务本身为增量数据写入场景的分析需求,例如各种时序数据场景,天然存在时间窗口的概念,流式计算直接满足其实时计算和历史补偿任务需求;

(2)Lambda直接支持批处理,因此更适合对历史数据分析查询的场景,比如数据分析师需要按任意条件组合对历史数据进行探索性的分析,并且有一定的实时性需求,期望尽快得到分析结果,批处理可以更直接高效地满足这些需求。

Kappa与lambda架构特性对比

Kappa架构与Lambda架构特性对比

Kappa架构与Lambda架构选择

根据两种架构对比分析,将业务需求、技术要求、系统复杂度、开发维护成本和历史数据处理能力作为选择考虑因素。而计算开销虽然存在一定差别,但是相差不是很大,所以不作为考虑因素。

(1)业务需求与技术要求

用户需要根据自己的业务需求来选择架构,如果业务对于Hadoop、Spark、Strom等关键技术有强制性依赖,选择Lambda架构可能较为合适;如果处理数据偏好于流式计算,又依赖Flink计算引擎,那么选择Kappa架构可能更为合适。

(2)复杂度

如果项目中需要频繁地对算法模型参数进行修改,Lambda架构需要反复修改两套代码,则显然不如Kappa架构简单方便。同时,如果算法模型支持同时执行批处理和流式计算,或者希望用一份代码进行数据处理,那么可以选择Kappa架构。

在某些复杂的案例中,其实时处理和离线处理的结果不能统一,比如某些机器学习的预测模型,需要先通过离线批处理得到训练模型,再交由实时流式处理进行验证测试,那么这种情况下,批处理层和流处理层不能进行合并,因此应该选择Lambda架构。

(3)开发维护成本

Lambda架构需要有一定程度的开发维护成本,包括两套系统的开发、部署、测试、维护,适合有足够经济、技术和人力资源的开发者。而Kappa架构只需要维护一套系统,适合不希望在开发维护上投入过多成本的开发者。

(4)历史数据处理能力

有些情况下,项目会频繁接触海量数据集进行分析,比如过往十年内的地区降水数据等,这种数据适合批处理系统进行分析,应该选择Lambda架构。如果始终使用小规模数据集,流处理系统完全可以使用,则应该选择Kappa架构。

案例分析

Lambda架构在某网奥运中的大数据应用

数据采集层:PC、APP、TV多端;

数据集成层:实时数据、离线数据集成;

数据存

文档评论(0)

邵宗其 + 关注
实名认证
内容提供者

信息系统项目管理师持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年07月25日上传了信息系统项目管理师

1亿VIP精品文档

相关文档