前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kappa和lambda对比

kappa和lambda对比

作者头像
Spark学习技巧
发布2019-05-15 17:40:54
1.7K0
发布2019-05-15 17:40:54
举报
文章被收录于专栏:Spark学习技巧

首先我们会详细的讲解这两种架构,实现这两种架构的技术工具,还有就是如何决策使用这两种架构。

如何构建一个实时处理系统架构一直争论不断。一个好的实时处理系统必须是容错和可升级的。必须支持批量和增量的更新,必须可扩展。

在这些讨论中一个重要的里程碑是,storm的创始人,Nathan Marz,描述了我们目前所了解的lambda架构。Lambda架构目前已经有很多使用案例,实时上大量的公司都在使用,比如Yahoo和Netflix。当然,lambda架构也并不是得到的全是赞美,也有一些批判,就是它带来了编码的负担。( 原英:But of course, Lambda is not a silver bullet and has received some fair criticism on the coding overhead it can create.)

在2014年夏天,LinkedIn的Jay Kreps发表了一篇文章描述了Kappa架构,解决了一些Lambda架构的陷阱。Kappa架构并不是Lambda架构的替代,因为有些Lambda架构并不适合迁移到Kappa架构上去。

对于一个给定的案例,准确的评估哪种架构师最好的是很有挑战性的,错误的设计决策可能对数据分析项目的实施产生严重的影响。

现在,就深入细节去了解两种数据处理架构。

1

lambda架构

Lambda架构有三个层面组成:batch,speed,serving。

Batch层面有两个主要的任务:

1.管理历史数据。

2.重新结算结果,例如重新训练模型。

Batch层接受新的数据,将新的数据和历史数据进行合并,然后重新计算结果。Batch层计算了所有的数据,这使得系统能产生相对精确的结果。然而,由于计算时间比较久,使的结果延迟也会比较大。

Speed层主要提供低延迟,近实时的计算结果。Speed层接收数据,增量更新batch层的结果。由于speed层的增量算法,计算代价被极大减少。

Serving用batch层和speed层计算的结果提供多样的查询。

2

kappa架构

创建kappa架构的一个最重要的动机是避免维护batch和speed层两份独立的代码。一个核心的思想就是用一个单独的流处理引擎处理实时的计算和连续不断的数据的重复计算。代码的更改对结果影响很大,所以数据必须重新计算。结果kappa架构的组成只有两个部分:stream processing和serving。流处理层运行流处理任务。运行一个流处理作业以启用实时数据处理。仅仅当流处理作业更改了一些代码之后才会进行数据的重新处理。可以通过重启一个梗概代码后的流处理作业去处理所有以前的数据。

Serving层也是提供数据查询的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浪尖聊大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
批量计算
批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档