大部分时候大家在选择技术方案的时候还是比较迷茫,是该选择JStorm还是Spark Streaming?


一般会流于一些并不重要问题的讨论,最后做出目光非常短浅的选择,几个月之后再改变技术方案。造成严重的开发量的浪费,甚至拖延关键产品的上线,或者上线后问题层出不穷,不断和业务方妥协谈判。所以,明确这两个最主流的流计算框架的应用场景至关重要,下面我说下经验之谈,避免更多的人走弯路。

Spark Streaming和JStorm的本质区别是想要解决的问题不同:

Spark Streaming是批量处理的Spark向流计算多迈了一步;

JStorm是真正的流式流水线计算向批量计算(trident可以有部分的批量处理)多迈出了一步。

使得看似毫不相关的两个问题有了交集。这个交集让很多人困惑。其实根本的问题是真正理解流计算本质的项目负责人少之又少。流计算不是实时计算。实时计算和离线计算对应,是计算的场景,是需求。流计算和批量计算对应是计算的方式。流计算的本质是:无状态性!批量计算的本质是有状态计算,或者说没有状态性的批量计算根本就是流计算,只是把时间维度的计算变成了空间维度的计算。而有状态的流计算本质也是批量计算,只是把状态的需求藏在流式之外的闭包中。这么看了,一切了然,根本没什么交集,判断自己的项目使用哪种技术方案根本不需要问询需求方:你要多少的延迟?如果你只是需要低延迟,那你只是在挑战现在计算机的计算能力。真正你要关心的是业务计算的逻辑是不是主要是无状态的。

下面举一个使用流计算的主要场景:

用户行为log的基本sum,count,distinct需求: 这里的log数据量巨大,如果技术方案不对,将对公司资源造成极大浪费。这个需求中,sum,count都是无状态的计算,但是distinct确是有状态的计算,所以最好的解决方案是sum,count在JStorm中计算,distinct在Spark中计算。但是两个系统同时存在会带来很多问题,数据落地拉起的延迟,这在阿里还是很大的瓶颈。但如果不考虑数据落地拉起,那么Storm接Spark是最好的技术方案之一。

其实还有很多项目都存在大量的状态保存的需求,都是需要使用Spark Streaming来计算的。其实就算使用Spark和Storm的混合架构,数据两次进内存(进程间数据流)也是对网络带宽的浪费,所以如果在不考虑很高的实时要求的情况下,对于有状态运算的项目完全可以用Spark Streaming取代掉Storm。对于没有状态的项目,当然可以完全用JStorm了。,

本文转自里冲51CTO博客,原文链接:http://blog.51cto.com/coollast/1901331 ,如需转载请自行联系原作者

Spark streaming vs JStorm相关推荐

  1. grafana计算不同时间的差值_大数据时代!如何基于Spark Streaming构建实时计算平台...

    随着互联网技术的迅速发展,用户对于数据处理的时效性.准确性与稳定性要求越来越高,如何构建一个稳定易用并提供齐备的监控与预警功能的实时计算平台也成了很多公司一个很大的挑战. 自2015年携程实时计算平台 ...

  2. Apache 流框架 Flink,Spark Streaming,Storm对比分析(一)

    https://bigdata.163.com/product/article/5 Apache 流框架 Flink,Spark Streaming,Storm对比分析(一) 转载于:https:// ...

  3. Spark Streaming笔记整理(二):案例、SSC、数据源与自定义Receiver

    [TOC] 实时WordCount案例 主要是监听网络端口中的数据,并实时进行wc的计算. Java版 测试代码如下: package cn.xpleaf.bigdata.spark.java.str ...

  4. Spark Streaming实践和优化

    2019独角兽企业重金招聘Python工程师标准>>> Spark Streaming实践和优化 博客分类: spark 在流式计算领域,Spark Streaming和Storm时 ...

  5. 基于大数据的Uber数据实时监控(Part 4:Spark Streaming、DataFrames和HBase)

    导言 根据Gartner的数据,到2020年全球将有208亿个连接产品投入使用.Uber机器学习负责人Danny Lange的目标是将机器学习待到Uber业务的每个角落.连接事物的示例包括联网汽车和设 ...

  6. 基于大数据的Uber数据实时监控(Part 2:Kafka和Spark Streaming)

    导言 本文是系列文章的第二篇,我们将建立一个分析和监控Uber汽车GPS旅行数据的实时示例.在第一篇文章中讨论了使用Apache Spark的K-means算法创建机器学习模型,以根据位置聚类Uber ...

  7. Spark Streaming与Kafka Streaming对比

    ♚ 叙述 对流处理的需求每天都在增加.原因是,处理大量数据通常是不够的. 必须快速处理数据,以便公司能够对不断变化的业务条件作出实时反应. 流处理是对数据进行连续.并行的实时处理. 流式处理是处理数据 ...

  8. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

  9. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十一)NIFI1.7.1安装

    一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120master192.168.0.121slave1192.168.0.122 slave2 ...

最新文章

  1. 【原创】关于部门月会(二)
  2. python注释可以辅助程序调试吗_Python 注释
  3. 共享单车数据集_共享单车数据可视化报告
  4. java选择排序解释_选择排序
  5. android调用webservice发送header身份验证不成功
  6. pdf sdk for android,Android 自带PDF SDK
  7. CF1A Theatre Square
  8. 分镜头剧本模板、故事图模板
  9. Java, 基础(面试题)总结(分享-交流)
  10. 南京大学计算机技术考研,南京大学计算机技术考研
  11. 字符处理——大写转小写、小写转大写
  12. idou老师教你学istio2:监控能力介绍
  13. matlab如何跳转程序,matlab如何跳转-matlab界面跳转-matlab跳转函数
  14. xxx was compiled with optimization - stepping may behave oddly; variables may not be available.
  15. 终身受用的企业网盘文件管理方案!
  16. html5泡泡龙游戏开发随笔
  17. 如何直观的理解机器学习PR曲线和ROC曲线?
  18. 基于Mxnet的车辆重识别(Re-ID)之数据集处理(以VeRi为例)
  19. 电影《一诺千金》剧照首度曝光系列一
  20. Mac下python2.7 升级到3.7

热门文章

  1. c语言内存复制函数,【C语言】 字符串操作函数及内存拷贝函数归总
  2. 在.NET中使用脚本引擎
  3. 使用plsql连接远程oracle数据库配置
  4. Word组件 Spire.Doc for .NET V6.0.3发布 | 修复多个重大bug
  5. windows中以管理员身份运行cmd
  6. 关于Nowpaper
  7. the first weekend of ChengDu
  8. 在html中加入滚动条,html在div中显示滚动条
  9. python qtablewedgit_PyQt5-高级控件使用(QTableWidget)
  10. Java 几种showMessageDialog的表示