什么是Spark Streaming, 为什么要学Spark Streaming, Spark Streaming和Strom有什么区别 27

1. 什么是Spark Streaming

什么是Spark Streaming, 为什么要学Spark Streaming, Spark Streaming和Strom有什么区别 27_第1张图片

  • Spark Streaming类似于Apache Strom, 用于流式数据的处理.
  • 根据其官网解释, Spark Streaming有着高吞吐量高容错的特点.
  • Spark Streaming支持的数据源有很多, 例如:Kafka, Flume, Twitter, ZeroMQ和简单的TCP套接字等.
  • 数据输入后,可以使用Spark进行高度的抽象操作: map. flat, flatmap, window等进行运算,而且运算的结果能够保存到很多地方,比如hdfs, 数据库等.
  • Spark Streaming还能够和MLlib(机器学习)以及Graphx完美融合.
    什么是Spark Streaming, 为什么要学Spark Streaming, Spark Streaming和Strom有什么区别 27_第2张图片

2. 为什么要学Spark Streaming

2.1 易用

什么是Spark Streaming, 为什么要学Spark Streaming, Spark Streaming和Strom有什么区别 27_第3张图片
可以像写离线批处理一样写流式程序,支持java/scala/python语言.

2.2 容错

什么是Spark Streaming, 为什么要学Spark Streaming, Spark Streaming和Strom有什么区别 27_第4张图片
SparkStreaming在没有额外代码和配置的情况下可以恢复丢失的工作。

2.3 易整合到Spark体系

什么是Spark Streaming, 为什么要学Spark Streaming, Spark Streaming和Strom有什么区别 27_第5张图片
流式处理与批处理和交互式查询相结合。

3. Spark和Strom有什么区别

什么是Spark Streaming, 为什么要学Spark Streaming, Spark Streaming和Strom有什么区别 27_第6张图片

  • Storm擅长于动态处理大量实时生产的小数据块,概念上是将小数据量的数据源源不断传给过程;Spark擅长对现有的数据全集做处理,概念是将过程传给大数据量的数据。

  • 二者设计思路相反。Storm侧重于处理的实时性,Spark侧重处理庞大数据(类似于Hadoop的MR)。

  • Spark流模块(Spark Streaming)与Storm类似,但有区别:

    1.Storm纯实时,来一条数据,处理一条数据;SparkStreaming准实时,对一个时间段内的数据收集起来,作为一个RDD,再做处理。
    2.Storm响应时间毫秒级;Spark Streaming响应时间秒级
    3.Storm可以动态调整并行度;SparkStreaming不行

  • Storm应用场景:
    1.对于需要纯实时,不能忍受1秒以上延迟的场景
    2.要求可靠的事务机制和可靠性机制,即数据的处理完全精准
    3.如果还需要针对高峰低峰时间段,动态调整实时计算程序的并行度,以最大限度利用集群资源

  • Spark Streaming应用场景:
    1.Spark Streaming可以和Spark Core、Spark SQL无缝整合,如果一个项目除了实时计算之外,还包括了离线批处理、交互式查询等业务功能,考虑使用Spark Streaming。

你可能感兴趣的:(Spark社区)