- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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多端;
数据集成层:实时数据、离线数据集成;
数据存
您可能关注的文档
- 语文(全国卷03)(考试版A4).docx
- 语文(天津卷02)(全解全析).docx
- 英语译林四(上)Unit4 第3课时 Sound time&Song time&Checkout time&Ticking time.pptx
- 10 河南 王真 教学课件 .ppt
- 5.9 面积练习(2)课件.pptx
- 福清市小学英语闽教版五年级上册U3Part A 硋灶中心小学.ppt
- 长方体和正方体的认识(第2课时)_教学课件.pptx
- 五上Unit 2 My week A Let's spell [王敏]【市级】优质课.doc
- 北师大小学数学二上《4.1折一折、做一做》[聂晋文]【市一等奖】优质课.ppt
- B let’s learn--[仇普军]【省级】优质课.ppt
文档评论(0)