主页 > 新闻资讯 > 大数据培训:流处理框架Spark Streaming与Storm

大数据培训:流处理框架Spark Streaming与Storm

作者:张老师 浏览次数: 2020-12-15 16:46
众所周知,大数据计算的第一代框架Hadoop,是致力于解决离线计算的问题而产生的,在离线批处理上性能优异,但是在实时流处理上,一直被诟病。Hadoop之后,Spark和Storm在流处理上成为对手。今天的大数据培训分享,我们就主要来讲讲,流处理框架Spark Streaming与Storm。

大数据培训:流处理框架Spark Streaming与Storm

Apache Spark流处理

Spark框架的出现,是在Hadoop MapReduce基础上继承研发而来,本质上来说,还是采用的批处理的思想,但是对于数据计算的中间流程做了优化,由此提升了数据处理效率,得到了比原生的MapReduce更优的计算性能。

大数据培训:流处理框架Spark Streaming与Storm

Spark Streaming是核心Spark API的一个扩展,其流处理思想,是在处理前按时间间隔预先将其切分为一段一段的批处理作业。

Spark针对持续性数据流的抽象称为DStream(DiscretizedStream),一个DStream是一个微批处理(micro-batching)的RDD(弹性分布式数据集);而RDD则是一种分布式数据集,能够以两种方式并行运作,分别是任意函数和滑动窗口数据的转换。

虽然目前Spark Streaming已经停止更新,Spark的重点也放到了Structured Streaming,但由于Spark版本过低或者其他技术选型问题,可能还是会选择Spark Streaming。Spark Streaming在企业级平台当中的应用,还是不少。

Apache Storm流处理

Storm作为分布式实时大数据处理系统,可以是首次实现了真正意义上的流处理。Storm具有高可靠、高容错、高扩展的特点,有很高的数据吞吐能力,Storm本身是无状态的,通过ZooKeeper管理分布式集群环境和集群状态。

大数据培训:流处理框架Spark Streaming与Storm

Storm侧重于低延迟的流处理,以近实时方式处理源源不断的流数据。Storm的基本思想是使用spout拉取stream(数据),并使用bolt进行处理和输出,Storm数据处理延时可以达到亚秒级。

在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topology)。这个拓扑将会被提交给集群,由集群中的主控节点(master node)分发代码,将任务分配给工作节点(worker node)执行。

一个拓扑中包括spout和bolt两种角色,其中spout发送消息,负责将数据流以tuple元组的形式发送出去;而bolt则负责转换这些数据流,在bolt中可以完成计算、过滤等操作,bolt自身也可以随机将数据发送给其他bolt。由spout发射出的tuple是不可变数组,对应着固定的键值对。

Storm与Spark streaming的应用场景

Storm:

Storm需要纯实时的环境,不能忍受1秒以上的延迟环境,比如银行类的金融系统。如果在实时计算中要保证事务性的话,同样还是银行,数据要非常精准,需要最大限度的利用集群资源,也可以考虑Storm。

Spark streaming:

不要求纯实时,不要求强大可靠的事务机制,不要求动态调整并行度,那么可以考虑使用Spark Streaming。

考虑使用Spark Streaming最主要的一个因素,应该要针对整个项目进行宏观的考虑,如果一个项目除了实时计算之外,还包括了其他业务功能.就要考虑使用Sparkstreaming。

关于大数据培训,流处理框架Spark Streaming与Storm,以上就为大家做了简单的介绍了。在流处理领域,目前来说,Storm的市场份额不大,主流更多集中在Spark和Flink上,但是相应的了解还是有必要的。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及试学视频,可联系客服获取!
热点排行
推荐文章
立即申请>>