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

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

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

Apache Storm

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

Apache Spark微信

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

Apache Flink框架

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

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

这三种计算框架的对好比下:函数

参考文章:post

Streaming Big Data: Storm, Spark and Samza

相关阅读:

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

推荐系统的工做流程

白话推荐系统

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

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

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

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

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

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

相关文章
相关标签/搜索