Lambda架构与Kappa架构对比

首先大数据处理系统需要几个特性:

1、容错性和鲁棒性:对大规模分布式系统来说,机器是不可靠的,可能会当机,但是系统需要是健壮、行为正确的,即使是遇到机器错误。
2、低延时:很多应用对于读和写操作的延时要求非常高,要求对更新和查询的响应是低延时的。
3、横向扩容:当数据量/负载增大时,可扩展性的系统通过增加更多的机器资源来维持性能。
4、通用性:系统需要能够适应广泛的应用,包括金融领域、社交网络、电子商务数据分析等。
5、可扩展:需要增加新功能、新特性时,可扩展的系统能以最小的开发代价来增加新功能。
6、方便查询:数据中蕴含有价值,需要能够方便、快速地查询出所需要的数据。
7、易于维护:系统要想做到易于维护,其关键是控制其复杂性,越是复杂的系统越容易出错、越难维护。
8、易调试:当出问题时,系统需要有足够的信息来调试错误,找到问题的根源。

Lambda 架构(整合离线计算和实时计算)

特点:
1、批处理层(batch layer)
2、快速处理层(speed layer)用于处理新数据和服务层更新造成的高延迟补偿
3、HDFS来存储(raw数据)
4、服务层(serving layer)用于加载和实现数据库中的批处理视图
5、任何Query的答案,都能通过合并批处理视图和实时视图的结果来获得

如图:在这里插入图片描述
在这里插入图片描述

Kappa 架构(实时计算和流式计算)

特点:
1、用Kafka或者类似的分布式队列系统保存数据或者用MongoDB。
2、当需要全量重新计算时,重新起一个流计算实例,从头开始读取数据进行处理,并输出到一个新的结果存储中。
3、完成新的job、需要释放job的资源。

如图:
在这里插入图片描述

Lambda架构 VS Kappa架构

Lambda 架构相对于kappa 架构出现的更早,Lambda 架构出现的时期,还没有哪一种大数据计算引擎能同时很好地解决数据批处理和流式处理的问题。Lambda 架构通过建立批处理层、速度层、服务层的方式,将批处理计算框架、实时计算框架计算的数据结果进行合并,既满足了对历史数据分析的需求,又满足了数据实时性的要求。Lambda 构架是在当时基于有限条件下的一种临时方案,具有历史局限性。Lambda 架构在代码维护复杂性、计算框架运维复杂性上的问题,Kappa 架构都针对性的进行了改善。然而Kappa 架构也并不是完美的。因为Kappa 架构对历史数据的计算都是现计算的,当需要追溯的时间跨度很长、计算逻辑复杂的情况下,现计算需要的时间是否能被接受是一个问题。

参考: RangeYan

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章