博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SparkStreaming基础理论
阅读量:6150 次
发布时间:2019-06-21

本文共 1738 字,大约阅读时间需要 5 分钟。

一、Spark Streaming的介绍

(1)为什么要有Spark Streaming?

   Hadoop 的 MapReduce 及 Spark SQL 等只能进行离线计算,无法满足实时性要求较高的业务 需求,例如实时推荐、实时网站性能分析等,流式计算可以解决这些问题。目前有三种比较 常用的流式计算框架,它们分别是 Storm,Spark Streaming 和 fink。

(2)Spark Streaming是什么?

SparkStreaming基础理论

   Spark Streaming,其实就是一种Spark提供的,对于大数据,进行实时计算的一种框架。它的底层,其实,也是基于我们之前讲解的Spark Core的。基本的计算模型,还是基于内存的大数据实时计算模型。而且,它的底层的核心组件还是我们在Spark Core中经常用到的RDD。针对实时计算的特点,在RDD之上,进行了一层封装,叫做DStream。其底层还是基于RDD的。所以,RDD是整个Spark技术生态中的核心。
   Spark streaming支持的数据输入源很多,如:Kafka、Flume、Twitter、ZeroMQ 和简单的 TCP 套接字等等。数据输入后可以用spark的高度抽象语:map、reduce、join、window 等进行运算。而结果也能保存在很多地方。如HDFS, 数据库等。另外,spark streaming也能和MLlib(机器学习)以及 Graphx 完美融合。

(3)Spark Streaming的优势

易用

SparkStreaming基础理论
容错
SparkStreaming基础理论
与spark体系无缝整合
SparkStreaming基础理论

二、Spark Streaming的核心概念

SparkStreaming基础理论

   接收实时输入数据流,然后将数据拆分成多个batch,比如每收集1秒的数据封装为一个batch,然后将每个batch交给Spark的计算引擎进行处理,最后会生产出一个结果数据流,其中的数据,也是由一个一个的batch所组成的。

(1)相关术语介绍:

  离散流DStream:这是spark streaming对内部持续的实时数据流的抽象描述,即我们处理的一个实时数据,在sparkstreaming中对应一个DStream实例。

  批数据:这是化整为零的第一步,将实时数据抽象,以时间片为单位进行分批,将流处理转化为时间片,数据的批处理,随着持续时间的推移,这些处理结果就形成了对应的结果数据流。
  时间片或批处理时间间隔:人为地对流数据进行定量的标准,以时 间片作为我们拆分流数据的依据。一个时间片的数据对应一个 RDD 实例。
SparkStreaming基础理论
窗口长度:一个窗口覆盖的数据流的时间长度,必须是批处理时间间隔的倍数
滑动周期:前一个窗口到后一个窗口所经过的时间长度,必须是批处理时间间隔的倍数
  InputDStream:一个 InputDStream 是一个特殊的 DStream,表示第一次被加载到实时数据流中的原始数据。

(2)DStream的相关介绍:

SparkStreaming基础理论

  Discretized Stream 是 Spark Streaming 的基础抽象,代表持续性的数据流和经过各种 Spark 原 语操作后的结果数据流。在内部实现上,DStream 是一系列连续的 RDD 来表示。DStream 是 连续数据的离散化表示,DStream 中每个离散片段都是一个 RDD,DStream 可以变换成另一 个 DStream。
  DStream对数据的操作也是按照RDD为单位来进行的:
SparkStreaming基础理论

1)DStream的相关操作:

  DStream上的原语与RDD类似,分为:Transformations(转换)和Output Operations(输出,类似于action)。

由于DStream的操作与RDD极为类似,而且DStream底层就是封装的RDD,所以这里简单的介绍一下Transformations。
SparkStreaming基础理论
注意:Transformations操作中有几个极为重要的操作:updateStateByKey()、transform()、window()、foreachRDD()。以后的博文中为详细介绍。

转载于:https://blog.51cto.com/14048416/2339445

你可能感兴趣的文章
must implement java.io.Serializable hessian
查看>>
Microsoft Licenses Flash Lite for Windows Mobile Users
查看>>
HDOJ 2020 绝对值排序
查看>>
HDOJ/HDU 2560 Buildings(嗯~水题)
查看>>
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
[20170628]12C ORA-54032.txt
查看>>
除以2
查看>>
高可用集群原理解析
查看>>
Nginx配置URL转向tomcat
查看>>
极客Web前端开发资源大荟萃#001
查看>>
让div固定在某个位置
查看>>
Java开发环境Docker镜像
查看>>
从无到有,WebService Apache Axis2初步实践
查看>>
任务调度(一)——jdk自带的Timer
查看>>
UIKit框架(15)PCH头文件
查看>>
整理看到的好的文档
查看>>
Linux磁盘管理和文件系统管理
查看>>
linux运维人员的成功面试总结案例分享
查看>>
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配
查看>>