roman_日积跬步-终至千里

roman_日积跬步-终至千里

1. INTRODUCTION

Lambda架构背后的需求是由于虽然MR能够处理大数据量,且准确性很高,但是高延迟不适用于实时计算。一个好的解决方案是通过kafka+spark组合为流模型,虽然能够提供高可用、低延迟但是准确性会有问题。
 

lambda架构说明
lambda架构的目标是统一批处理和流处理,并满足可拓展、高可用(对于硬件和人工的错误)需求。

 

2. LAMBDA ARCHITECTURE

【大数据架构(1)】Lambda Architecture – Realtime Data Processing 论文重点翻译-LMLPHP

 

A) BATCH LAYER

不可变数据集的特点

 

支持数据模型简化

 

批处理对于机器学习的作用

 
批处理的主要问题是高延迟性,所以需要速度层。

 

B) SPEED LAYER

速度层实时处理消息,虽然实时处理没有考虑到数据的完整性,但是弥补了批处理层的高延迟。

为了创建最新数据的实时视图(视图生产到服务层),速度层牺牲了吞吐量,来降低延迟。当数据接收后实时视图便生成,但不如批处理层的完整或精确。这种设计背后的想法是,一旦批处理层的准确结果到达,它们就会覆盖实时视图
 

不同层次的角色分离是 Lambda 架构之美的体现。

 

增量计算策略

 

C) SERVICE LAYER

服务层负责存储批处理层和速度层的输出。
 

流批结果配合使用

 

3. LIMITATIONS OF THE TRADITIONAL LAMBDAARCHITECTURE

一开始LA的批数据层由hadoop、MapReduce组成,速度层由storm组成,服务层由ElephantDB 和 Cassandra构成。

 

4. A PROPOSED SOLUTION

1. 架构说明

就上面描述的,LA可能会导致编码的复杂性,debug、维护的问题。可以通过组合不同的组件来实现LA,这里通过使用kafka、spark(计算引擎)、Cassandra(视图)、Zeppelin(存储层)来优化LA架构。

之前的架构中,有两套处理系统用于处理批和流数据,批模式中用HDFS+MR处理、流中使用Storm处理,此架构中使用spark作为流批一体的计算引擎。如下图:

【大数据架构(1)】Lambda Architecture – Realtime Data Processing 论文重点翻译-LMLPHP

 

2. 前后架构改进对比

【大数据架构(1)】Lambda Architecture – Realtime Data Processing 论文重点翻译-LMLPHP
 

spark VS MR
【大数据架构(1)】Lambda Architecture – Realtime Data Processing 论文重点翻译-LMLPHP

改进的架构中

 

参考:
https://download.csdn.net/download/hiliang521/88881089

02-29 08:04