Lambda架构简介

来源:互联网 发布:mastercam9.1二维编程 编辑:程序博客网 时间:2024/06/05 05:05

原网址:http://www.ymc.ch/en/lambda-architecture-part-1



Hadoop框架带来了批量数据处理,但是网络规模大数据的实时处理仍然是一个挑战。 有很多技术可以用来建立这样一个完整的数据处理系统 - 但要选择合适的工具并且编排使用它们却是复杂和艰巨的。

Nathan Marz将任何数据系统都可定义为:
“query = function(all data)”

Lambda系统架构定义了一套明确的架构原则,如果要建立一套强大的和可扩展的数据系统,必须服从上面的公式。

Lambda基于下列原则:
1.人为容错性human fault-tolerance – 系统易数据丢失或数据损坏,大规模时可能是不可挽回的。

2.数据不可变性data immutability – 数据存储在它的最原始的形式不变的,永久的。

3.重新计算recomputation – 因为上面两个原则,运行函数重新计算结果是可能的。

Lambda架构是由三层组成:批处理层,服务层和速度层:
  

批处理层:Hadoop 是理想的批处理层工具

服务层:用于加载和现实数据库中的批处理视图,以便用户能够查询,不一定需要随机写,但是支持批更新和随机读,推荐:ElephantDB or Voldemort。

速度层:  
主要处理新数据和服务层更新造成的高延迟补偿,利用流处理系统如 (Storm, S4, Spark) 和随机read/write数据存储库来计算实时视图(HBase). 这些视图有效期一直到它们已经能通过批处理和服务层获得时为止。

为了获得一个完整结果,批处理和实时视图都必须被同时查询和融合(实时代表新数据)。

Lambda架构通过定义一些很清晰的原则来处理复杂大数据 Big Data .


现在有人感觉Lambda的架构师两个独立的系统,在使用的时候进行数据融合,对应的解决Kappa架构:

相关介绍的文章:

  http://radar.oreilly.com/2014/07/questioning-the-lambda-architecture.html

 http://news.cnblogs.com/n/212592/

0 0
原创粉丝点击