文档详情

第4讲大数据架构设计理论与实践Lambda 架构的实现.pptx

发布:2025-02-16约2.14千字共11页下载文档
文本预览下载声明

第十九章大数据架构设计理论与实践Lambda架构实现系统架构设计师第二版

综合知识精讲培训课讲师:邵宗其

大数据架构设计理论与实践考点分析本章主要学习大数据方向软件架构的发展和工作中的实践。根据考试大纲,本小时知识点会涉及案例分析题和论文题(各占25分)。本小时内容侧重于理解性记忆,按照以往的出题规律,部分基础知识点来源于教材,部分考查内容需要灵活运用相关知识点。知识架构如图所示。

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

Lambda架构实现Hadoop是被设计成适合运行在通用硬件上的分布式文件系统(DistributedFileSystem)。它和现有的分布式文件系统有很多共同点。但同时,它和其他分布式文件系统的区别也很明显。HDFS是一个具有高度容错性的系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一些约束,以达到流式读取文件系统数据的目的。ApacheSpark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UCBerkeleyAMPlab所开源的类HadoopMapReduce的通用并行处理框架,Spark拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce算法。HBase-HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。Lambda架构实现

Lambda架构的优缺点(1)容错性好。Lambda架构为大数据系统提供了更友好的容错能力,一旦发生错误,我们可以修复算法或从头开始重新计算视图。(2)查询灵活度高。批处理层允许针对任何数据进行临时查询。(3)易伸缩。所有的批处理层、加速层和服务层都很容易扩展。因为它们都是完全分布式的系统,我们可以通过增加新机器来轻松地扩大规模。(4)易扩展。添加视图是容易的,只是给主数据集添加几个新的函数。Lambda架构的优点

Lambda架构的优缺点(1)全场景覆盖带来的编码开销。(2)针对具体场景重新离线训练一遍益处不大。(3)重新部署和迁移成本很高。Lambda架构的缺点

Lambda架构的与其他架构的对比Lambda架构的诞生离不开很多现有设计思想和架构的铺垫,如事件溯源(EventSourcing)架构和命令查询分离(CommandQueryResponsibilitySegregation,CQRS)架构,Lambda架构的设计思想和这两者有一定程度的相似。Lambda架构对比Segregation分离、隔离

Lambda架构的与其他架构的对比EventSourcing架构模式由ThoughtWorks的首席科学家MartinFlower提出。EventSourcing本质上是一种数据持久化的方式,其由三个核心观点构成:(1)整个系统以事件为驱动,所有业务都由事件驱动来完成。(2)事件是核心,系统的数据以事件为基础,事件要保存在某种存储上。(3)业务数据只是一些由事件产生的视图,不一定要保存到数据库中。Lambda架构中数据集的存储使用的概念与EventSourcing中的思想完全一致,二者都是在使用统一的数据模型对数据处理事件本身进行定义。这样在发生错误的时候,能够通过模型找到错误发生的原因,对这一事件进行重新计算以丢弃错误信息,恢复到系统应该的正确状态,以此实现了系统的容错性。Lambda架构事件溯源

Lambda架构的与其他架构的对比CQRS架构分离了对于数据进行的读操作(查询)和写(修改)操作。其将能够改变数据模型状态的命令和对于模型状态的查询操作实现了分离。这是领域驱动设计(Domain-DrivenDesign,DDD)的一个架构模式,主要用来解决数据库报表的输出处理方式。Lambda架构中,数据的修改通过批处理和流处理实现,通过写操作将数据转换成查询时所对应的View。在Lambda架构中,对数据进行查询时,实际上是通过读取View直接得到结果,读出所需的内容。这实际上是一种形式的读写分离。进行读写分离设计的原因是,读操作实际上比写操作要省时得多,如果将读和写操作放在一起,实际处理大量数据时会因为写操作的时长问题

显示全部
相似文档