接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(4)
所属章节:
第19章. 大数据架构设计理论与实践
第3节 Lambda架构
19.3.1 Lambda架构对大数据处理系统的理解
Lambda架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则,可集成Hadoop、Kafka、Spark、Storm等各类大数据组件。Lambda是用于同时处理离线和实时数据的、可容错的、可扩展的分布式系统。它具备强鲁棒性,提供低延迟和持续更新。
Lambda Architecture(LA)基本框架如图所示:
19.3.2 Lambda架构应用场景
1. 机器学习中的Lambda架构
在机器学习领域,数据量无疑是多多益善的。但是,对于机器学习应用算法、检测模式而言,它们需要以一种有意义的方式去接收数据。因此,机器学习可以受益于由Lambda架构构建的数据系统、所处理的各类数据。据此,机器学习算法可以提出各种问题,并逐渐对输入到系统中的数据进行模式识别。
2. 物联网的Lambda架构
如果说机器学习利用的是Lambda架构的输出,那么物联网则更多地作为数据系统的输入。设想一下,一个拥有数百万辆汽车的城市,每辆汽车都装有传感器,并能够发送有关天气、空气质量、交通状况、位置信息以及司机驾驶习惯等数据。这些海量数据流,会被实时馈入Lambda体系结构的批处理层和速度层,进行后续处理。可以说,物联网设备是适合作为大数据源的绝佳实例。
3. 流处理和Lambda架构挑战
速度层也被称为“流处理层”。其目的是提供最新数据的低延迟实时视图。虽说速度层仅关心自完成最后一组批处理视图以来导入的数据,但事实上它不会存储这些小部分的数据。这些数据在流入时就会被立即处理,且在完成后被立即丢弃。因此,我们可以认为这些数据是尚未被批处理视图所记入的数据。
Lambda体系结构在其原始理论中,提到了最终精度(eventual accuracy)的概念。它是指批处理层更关注精确计算,而速度层则关注近似计算。此类近似计算最终将由下一组视图所取代,以便系统向“最终精度”迈进。
在实际应用中,由于实时处理流以毫秒为单位,持续产生用于更新视图的数据流,是一个非常复杂的过程。因此,将基于文档的数据库、索引以及查询系统配合在一起使用,是一种比较好的选择。
至此,“19.3.2 Lambda架构应用场景”的全部内容就讲解完了。更多内容请看下回。