1.Lambda架构对大数据处理系统的理解
Lambda架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则,可集成Hadoop、Kafka、Spark、Storm等各类大数据组件。Lambda是用于同时处理离线和实时数据的,可容错的,可扩展的分布式系统。它具备强鲁棒性,提供低延迟和持续更新。
2.Lambda架构应用场景
1.机器学习中的Lambda架构
2.物联网的Lambda架构
3.流处理和Lambda架构挑战
3.Lambda架构介绍
如图1所示,Lambda架构可分解为三层,即批处理层、加速层和服务层。
(1)批处理层(Batch Layer):存储数据集,Batch Layer在数据集上预先计算查询函数,并构件查询所对应的View。Batch Layer可以很好地处理离线数据,但有很多场景数据是不断实时生成且需要实时查询处理,对于这种情况,Speed Layer更为适合。
(2)加速层(Speed Layer):Batch Layer处理的最近的增量数据流。Speed Layer为了效率,在接收到新的数据后会不断更新Real-time View,而Batch Layer是根据全体离线数据集直接得到Batch View。
(3)服务层(Serviing Layer):Serving Layer用于合并Batch View和Real-time View中的结果数据集到最终数据集。
图1 Lambda架构
4.Lambda架构优缺点
1.优点
(1)容错性好。Lambda架构诶大数据系统提供了更友好的容错能力,一旦发生错误,我们可以修复算法或从头开始重新计算视图。
(2)查询灵活度高。批处理层允许针对任何数据进行临时查询。
(3)易伸缩。所有的批处理层、加速层和服务层都很容易扩展。因为它们都是完全分布式的系统,我们可以通过增加新机器来轻松地扩大规模。
(4)易扩展。添加视图是容易的,只是给主数据添加几个新的函数。
2.缺点
(1)全场景覆盖带来的编码开销。
(2)针对具体场景重新离线训练一遍益处不大。
(3)重新部署和迁移成本很高。