首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统架构设计师:大数据架构设计理论与实践--Lambda架构的实现优缺点与其他架构对比

一、架构的实现

如图19-9所示,在这种Lambda架构实现中,Hadoop(HDFS)用于存储主数据集,Spark(或Storm)可构成速度层(SpeedLayer),HBase(或Cassandra)作为服务层,由Hive创建可查询的视图。

Hadoop是被设计成适合运行在通用硬件上的分布式文件系统(Distributed File System)。它和现有的分布式文件系统有很多共同点。但同时,它和其他分布式文件系统的区别也很明显。HDFS是一个具有高度容错性的系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一些约束,以达到流式读取文件系统数据的目的。Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。

Spark是 UC Berkeley AMP 1ab所开源的类Hadoop Map Reduce的通用并行处理框架,Spark拥有Hadoop Map Reduce所具有的优点;但不同于Map Reduce的是一-Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的Map Reduce算法。

HBase-Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。

二、Lambda架构优缺点

1.优点

(1)容错性好。Lambda架构为大数据系统提供了更友好的容错能力,一旦发生错误,我们可以修复算法或从头开始重新计算视图。

(2)查询灵活度高。批处理层允许针对任何数据进行临时查询。

(3)易伸缩。所有的批处理层、加速层和服务层都很容易扩展。因为它们都是完全分布式的系统,我们可以通过增加新机器来轻松地扩大规模。

(4)易扩展。添加视图是容易的,只是给主数据集添加几个新的函数。

2.缺点

(1)全场景覆盖带来的编码开销。

(2)针对具体场景重新离线训练一遍益处不大。

(3)重新部署和迁移成本很高。

三、Lambda与其他架构模式对比

Lambda架构的诞生离不开很多现有设计思想和架构的铺垫,如事件溯源(Event Sourcing)架构和命令查询分离(Command QueryResponsibility Segregation,CQRS)架构,Lambda架构的设计思想和这两者有一定程度的相似。

下面对Lambda架构和这两者进行分析。

1.事件溯源(EventSourcing)与Lambda架构

Event Sourcing架构模式由ThoughtWorks的首席科学家Martin Flower提出。EventSourcing本质上是一种数据持久化的方式,其由三个核心观点构成:

(1)整个系统以事件为驱动,所有业务都由事件驱动来完成。

(2)事件是核心,系统的数据以事件为基础,事件要保存在某种存储上。

(3)业务数据只是一些由事件产生的视图,不一定要保存到数据库中。

Lambda架构中数据集的存储使用的概念与Event Sourcing中的思想完全一致,二者都是在使用统一的数据模型对数据处理事件本身进行定义。这样在发生错误的时候,能够通过模型找到错误发生的原因,对这一事件进行重新计算以丢弃错误信息,恢复到系统应该的正确状态,以此实现了系统的容错性。

2.CQRS与Lambda架构

CQRS架构分离了对于数据进行的读操作(查询)和写(修改)操作。其将能够改变数据模型状态的命令和对于模型状态的查询操作实现了分离。这是领域驱动设计(Domain-Driven Design,DDD)的一个架构模式,主要用来解决数据库报表的输出处理方式。

Lambda架构中,数据的修改通过批处理和流处理实现,通过写操作将数据转换成查询时所对应的View。在Lambda架构中,对数据进行查询时,实际上是通过读取View直接得到结果,读出所需的内容。这实际上是一种形式的读写分离。进行读写分离设计的原因是,读操作实际上比写操作要省时得多,如果将读和写操作放在起,实际处理大量数据时会因为写操作的时长问题影响整体业务的处理效率。在大数据系统中经常处理海量数据,进行读写分离重要性不言而喻。

整理不易动动你发财的小手点个“在看”哦!

您的支持是我坚持的动力,谢谢

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O7IF1IAKc5p7XGu_ltfaB-Vw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券