sentric » 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 .
[该贴被admin于2013-03-10 16:18修改过]