前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据架构Lambda-架构师(六十九)

大数据架构Lambda-架构师(六十九)

作者头像
用户9919783
发布2023-11-20 11:16:10
2100
发布2023-11-20 11:16:10
举报

随着信息时代技术的发展,数据量的快速增加逐渐飙升到了惊人的数量级别。并且数据的采集与处理技术还在更新加快。大数据中,结构化占比百分之15左右,其余百分之85都是非结构化数据,他们大量存在于社交网络、互联网和电子商务等领域。

一、大数据系统架构的特征

1、鲁棒性和容错性(Robust and Fault-tolerant)

对于大规模分布式系统中,机器可能存在宕机,但系统需要健壮性,行为正确,即使遇到了机器错误。机器错误和人错误都是存在的,每天都难以避免。

2、低延迟读取和更新能力

有的需要毫秒的更新能力,有的允许几个小时的延迟更新,只要有低延迟需求,系统应该保证鲁棒性。

3、横向扩展

当负载增大的时候,通常可以通过增加机器数量来横向扩展。

4、通用性

要支持绝大多数应用程序,包括金融领域,社交领域和电子商务。

5、延展性

有新的需求出现时候,可以把新的功能加入到系统。

6、查询能力

用户可以按照自己的需求进行查询,可以产生更高的价值。

7、最少维护能力

系统在大多数时候保持平衡,减少系统的维护次数重要途径。

8、可调式性

系统在运行中,产生的每一个值,都是可追踪调试的。

二、Lambda架构

Lambda架构主要分为三层,批处理层、加速层和服务层。

(1)批处理层(Batch Layer):存储数据集,预先计算查询函数,并构建查询对应的view。Batch Layer适合批量处理离线数据。当很多场景需要实时查询的时候,则需要Speed Layer

(2)加速层(Speed Layer):batch layer处理的是全体数据,speed layer处理的是增量数据。Speed layer接收到数据后会不断更新Real-time view。

(3)服务层(serving layer):Serving layer用于合并batch view 和real-time view中的结果数据集到最终数据集。

1、批处理

批处理有两个核心功能,存储数据集和生成batch View。该层主要负责主数据集,主数据集有以下三个属性:

(1)数据是原始的

(2)数据是不可变的

(3)数据永远真实的

2、加速层

它存储实时视图并传入数据流,以便更新这些视图。

他们的区别是什么呢?

(1)speed layer处理数据是增量数据,batch layer是全体数据。

(2)Speed layer为了效率,接受时候更新real Time view,而batch layer是根据全体离线数据直接得到batch view。

分为加速层和批量层的好处有哪些?

容错性:当speed layer重新计算后,当前的real-time view就可以丢弃,而batch view也是重新计算的。

复杂性隔离:批量处理离线数据很好掌握,加速层处理增量数据隔离出来。

Scale out:横向扩展,通过增加机器来扩展,而不是增加机器性能scale up。

3、服务层

用于响应用户查询,合并batch view和real-time view中的结果集得到最终数据集。

Lambda架构实现?

Hadoop(HDFS)用于存储数据集,Spark(或Storm)构成速度层(Speed Layer),HBase作为服务层,有Hive创建可查询视图。

Hadoop设计成适合运行在通用分布式文件系统(Distributed File System),与目前的分布式系统有很多共同点,HDFS是一个具有高度容错性的系统,能提供吞吐量的访问数据。

Apache Spark专门为大数据设计的快速计算引擎。

HBase-Hadoop database,是一个高可用、高性能、面向列、可伸缩的分布式系统。

Lambda优点:

1、容错性好:一旦发生错误,从修复算法或从头计算开始。

2、查询灵活度高:批处理可以针对任何数据临时查询。

3、易伸缩:所有批处理、加速层和服务层都很容易扩展。

4、扩展:添加视图很容易,只需要给主数据添加新函数。

缺点:

1、全场景覆盖带来编码开销。

2、针对具体场景重新训练一遍益处不大。

3、重新部署和迁移成本高。

Lambda架构与其他架构比较:

1、事件溯源与lambda架构

整个系统以事件驱动来完成,业务数据是事件产生的视图。

2、CQRS与lambda架构

CQRS架构分离了对数据进行的读操作和写操作,将其改变数据模型状态命令对于模型状态查询实现了分离。

关注我...每天陪你一起学习进步

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后端从入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档