阅读 521

流式计算的三种框架:Storm、Spark和Flink

我们知道,大数据的计算模式主要分为批量计算(batch computing)、流式计算(stream computing)、交互计算(interactive computing)、图计算(graph computing)等。其中,流式计算和批量计算是两种主要的大数据计算模式,分别适用于不同的大数据应用场景。

目前主流的流式计算框架有Storm、Spark Streaming、Flink三种,其基本原理如下:

Apache Storm

在Storm中,需要先设计一个实时计算结构,我们称之为拓扑(topology)。之后,这个拓扑结构会被提交给集群,其中主节点(master node)负责给工作节点(worker node)分配代码,工作节点负责执行代码。在一个拓扑结构中,包含spout和bolt两种角色。数据在spouts之间传递,这些spouts将数据流以tuple元组的形式发送;而bolt则负责转换数据流。

Apache Spark

Spark Streaming,即核心Spark API的扩展,不像Storm那样一次处理一个数据流。相反,它在处理数据流之前,会按照时间间隔对数据流进行分段切分。Spark针对连续数据流的抽象,我们称为DStream(Discretized Stream)。 DStream是小批处理的RDD(弹性分布式数据集), RDD则是分布式数据集,可以通过任意函数和滑动数据窗口(窗口计算)进行转换,实现并行操作。

Apache Flink

针对流数据+批数据的计算框架。把批数据看作流数据的一种特例,延迟性较低(毫秒级),且能够保证消息传输不丢失不重复。

Flink创造性地统一了流处理和批处理,作为流处理看待时输入数据流是无界的,而批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。Flink程序由Stream和Transformation这两个基本构建块组成,其中Stream是一个中间结果数据,而Transformation是一个操作,它对一个或多个输入Stream进行计算处理,输出一个或多个结果Stream。

这三种计算框架的对比如下:

参考文章:

Streaming Big Data: Storm, Spark and Samza

相关阅读:

用于推荐系统评估的概念与指标

推荐系统的工作流程

白话推荐系统

想要了解推荐系统?看这里!(2)——神经网络方法

想要了解推荐系统?看这里!(1)——协同过滤与奇异值分解

AutoML如何实现智能推荐系统的自动上线和运维?

入门推荐系统,你不应该错过的知识清单

如欲了解更多,欢迎搜索并关注先荐微信公众号(ID:dsfsxj)

本账号为第四范式智能推荐产品先荐的官方账号。账号立足于计算机领域,特别是人工智能相关的前沿研究,旨在把更多与人工智能相关的知识分享给公众,从专业的角度促进公众对人工智能的理解;同时也希望为人工智能相关人员提供一个讨论、交流、学习的开放平台,从而早日让每个人都享受到人工智能创造的价值。



关注下面的标签,发现更多相似文章
评论