当前位置: 首页 > news >正文

Spark记录-spark与storm比对与选型(转载)

大数据实时处理平台市场上产品众多,本文着重讨论spark与storm的比对,最后结合适用场景进行选型。

一、spark与storm的比较

比较点

Storm

Spark Streaming

实时计算模型

纯实时,来一条数据,处理一条数据

准实时,对一个时间段内的数据收集起来,作为一个RDD,再处理

实时计算延迟度

毫秒级

秒级

吞吐量

事务机制

支持完善

支持,但不够完善

健壮性 / 容错性

ZooKeeper,Acker,非常强

Checkpoint,WAL,一般

动态调整并行度

支持

不支持

 

二、Spark Streaming与Storm的应用场景 

适用Storm的场景:

1、需要纯实时,不能忍受1秒以上延迟的场景下使用,比如实时金融系统,要求纯实时进行金融交易和分析

2、对于实时计算的功能中,要求可靠的事务机制和可靠性机制,即数据的处理完全精准,一条也不能多,一条也不能少,也可以考虑使用Storm

3、若还需要针对高峰低峰时间段,动态调整实时计算程序的并行度,以最大限度利用集群资源(通常是在小型公司,集群资源紧张的情况),也可以考虑用Storm

4、如果一个大数据应用系统,它就是纯粹的实时计算,不需要在中间执行SQL交互式查询、复杂的transformation算子等,那么用Storm是比较好的选择

适用Spark Streaming的场景:

1、如果对上述适用于Storm的三点,一条都不满足的实时场景,即:不要求纯实时,不要求强大可靠的事务机制,不要求动态调整并行度,那么可以考虑使用Spark Streaming

2、考虑使用Spark Streaming最主要的一个因素,应该是针对整个项目进行宏观的考虑,即:如果一个项目除了实时计算之外,还包括了离线批处理、交互式查询等业务功能,而且实时计算中,可能还会牵扯到高延迟批处理、交互式查询等功能,那么就应该首选Spark生态,用Spark Core开发离线批处理,用Spark SQL开发交互式查询,用Spark Streaming开发实时计算,三者可以无缝整合,给系统提供非常高的可扩展性 Spark Streaming与Storm的优劣分析事实上,Spark Streaming绝对谈不上比Storm优秀。

总之,这两个框架在实时计算领域都很优秀,只是擅长的细分场景并不相同。Spark Streaming仅仅在吞吐量上比Storm要优秀,而吞吐量这一点,也是历来挺Spark Streaming贬Storm的人着重强调的。但是问题是,是不是在所有的实时计算场景下,都那么注重吞吐量?不尽然。因此,通过吞吐量说Spark Streaming强于Storm,不靠谱。事实上,Storm在实时延迟度上,比Spark Streaming就好多了,前者是纯实时,后者是准实时。而且,Storm的事务机制、健壮性 / 容错性、动态调整并行度等特性,都要比Spark Streaming更加优秀。Spark Streaming,有一点是Storm绝对比不上的,就是:它位于Spark生态技术栈中,因此Spark Streaming可以和Spark Core、Spark SQL无缝整合,也就意味着,我们可以对实时处理出来的中间数据,立即在程序中无缝进行延迟批处理、交互式查询等操作。这个特点大大增强了Spark Streaming的优势和功能。

转载于:https://www.cnblogs.com/xinfang520/p/7852015.html

相关文章:

  • matlab 实验七,matlab 实验七 数字填图问题
  • matlab corrcoef 原理,cov函数 corrcoef函数【Matlab】
  • 彻底解决Oracle unable to create INITIAL extent for segment in tablespace xx
  • php控制台运维工具,试用Grafana:一个自动化运维常用的可视化开源工具
  • C语言博客作业--函数
  • php静态的关键字是,php 延迟静态绑定static关键字
  • hdu 5685 Problem A (逆元)
  • 浏览器运行不出来PHP,php脚本无法运行碎片浏览器
  • oracle创建永久账号,Oracle:用户创建、权限分配(默认账号)
  • Codeforces Round #369 (Div. 2)
  • oracle的下载地址,ORACLE 资源包下载地址
  • Ubuntu 16.04 安装NodeJs
  • oracle 集中度函数,提高品牌集中度为企业谋取更多利益
  • TreeMap按照key排序
  • oracle 分区表外键建索引,INFORMIX 表分区及索引
  • 【347天】每日项目总结系列085(2018.01.18)
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CAP 一致性协议及应用解析
  • gcc介绍及安装
  • JDK9: 集成 Jshell 和 Maven 项目.
  • JS数组方法汇总
  • k个最大的数及变种小结
  • MobX
  • PHP 的 SAPI 是个什么东西
  • vagrant 添加本地 box 安装 laravel homestead
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 记一次删除Git记录中的大文件的过程
  • 全栈开发——Linux
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 使用putty远程连接linux
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 追踪解析 FutureTask 源码
  • 阿里云服务器如何修改远程端口?
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​io --- 处理流的核心工具​
  • ​Linux·i2c驱动架构​
  • #includecmath
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • ${ }的特别功能
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (2)(2.10) LTM telemetry
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (20050108)又读《平凡的世界》
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .net framework 4.0中如何 输出 form 的name属性。