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中的结果数据集到最终数据集。        

Lambda架构-LMLPHP

图1 Lambda架构 

4.Lambda架构优缺点

        1.优点

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

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

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

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

        2.缺点

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

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

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

 

07-10 15:55