1、吴新丽 Lambda架构20161背景5与其他架构的比较234大数据系统的关键特性数据系统的本质Lambda架构1背景介绍Lambda:一个实时大数据处理框架;目标:满足实时大数据系统关键特性,包括有高容错、低延时和可扩展等。整合离线计算和实时计算,融合不可变性,读写分离和复杂性隔离等一系列架构原则,可集成Hadoop,Kafka,Storm,Spark,Hbase等各类大数据组件。2关键特性Robust and fault-tolerant(容错性和鲁棒性)Low latency reads and updates(低延时)Scalable(横向扩容)General(通用性)Extensib
2、le(可扩展)Allows ad hoc queries(方便查询)Minimal maintenance(易于维护)Debuggable(易调试)3数据系统的定义通过查询过去的全部或部分数据回答问题。Query=Function(alldata)数据系统=数据+查询数据的本质:一个不可分割的单元关键特性When:数据与时间相关,时间性质决定了数据的全局发生先后,也就决定了数据的结果;What:数据本身,具有不可变性(immutable),过往的数据已成事实;数据操作:CR读取(Read)添加(Create):Update和Delete本质上其实是新产生的数据信息,用C来记录4Lambda架构
3、数据存储特性数据不可变(Immutable)采用不可变的数据模型,存储数据时只需要简单的往主数据集后追加数据即可。存储所有数据(StoreEverything Rawly)Lambda架构主要思想批处理层(batchlayer)实时处理层(speedlayer)服务层(servinglayer)将大数据系统架构分为3个层次Lambda架构NewDataStreamImmutableMaster DatasetPrecomputeViewsProcessStreamIncrementViewsBatch RecomputeRealtimeIncrementViews 1Views 1Views
4、1Views 1Views 1Views 1Batch ViewsReal-time ViewsQueryBatch LayerServing LayerSpeedLayerBatchLayerMastDataset:一个持续增长的数据集BatchLayer的两个职责:存储MasterDataset;针对MasterDataset进行预运算;View:结合业务自身需求的各种查询应用场景约束:需要预先知道查询需要的数据,以便安排执行计划;预运算的统计数据支持合并(merge);SpeedLayerRealtimeView=function(realtimeView,newdata)处理最近的增量
5、数据流增量计算Serving LayerQuery=function(BatchViews,RealtimView)根据业务查询需求对BatchViews和RealtimeView进行随机访问;只要Batchlayer完成对BatchViews的预运算,Servinglayer就需要对BatchViews进行更新;合并两者数据,对用户提供统一的接口一旦数据通过batch layer进入到serving layer,在realtime view中的相应结果就不再需要了。Lambda架构组件选型NewDataStreamImmutableMaster DatasetPrecomputeViewsProcessStreamIncrementViewsBatch RecomputeRealtimeIncrementViews 1Views 1Views 1Views 1Views 1Views 1Batch ViewsReal-time ViewsQueryBatch LayerServing LayerSpeedLayerKafka存储:HDFS、ODPS计算:MapReduce或SparkMySql:查询少量的最近结果数据Hbase:查询大量的历史结果数据Storm或SparkStreamingRedis6谢谢