Skip to content

Latest commit

 

History

History

chapter11

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
the task of this chapter
conception of online learning
stream process with spark stream
online learning with spark
srtuct streaming
online study:
1.stream process:
数据流是连续的记录序列。常见的例子包括网页和移动应用获取的活动流数据,时间戳日志文件,交易数据,甚至传感器或者设备网络传入的事件流。
批处理的方法一般包括数据流报错到一个临时的存储系统如HDFS和在存储数据上运行批处理。为了生成最新的结果,批处理必须在最新的的可用数据上周期性的运行。
相反,流处理方法是当数据产生时就开始处理。
Spark stream介绍:
两种处理技术:
1.单独处理每条记录,并在记录出现时立刻处理
2.把多个记录组合为小批量任务,可以通过记录数或者时间长度划分出来。
spark stream使用第二种方其核心概念是离散化流。一个DStream是指一个小批量作业的序列,每一个小批量作业表示为一个Spark RDD。
离散化流是通过输入数据源和叫做批处理间隔的时间窗口来定义。
数据流被分成和批处理间隔相等的时间段。如果在所给时间段内没有产生数据,将得到一个空的RDD。
1.输入源
Spark Streaming 接收端负责从数据源接收数据并转换成由SPARK RDD 组成Dstream
支持多种输入源:基于文件的源,和基于网络的源(TWITTER api,消息队列,Flume,KAfka,Amazon kimesis)等分布式流及其日志流。
2.转换
spark支持对RDD的转换,Dstream是由RDD组成的,所以也能转换DSTREAM。
SPARK stream中的 reduce和count等算子不是执行算子而是转换算子。
(1)状态转换
可以使用广播变量或者累增变量来并行更新状态
(2)一般转换
提供transform函数,以方便用户访问流中的每个RDD的批量数据。也就是高层api将一个DSTREAM转换成另一个Dstream。不同类型rdd之间进行操作。
3.执行算子
stream中的算子(count)不像批量RDD那样是执行算子,他自己有一套执行算子的概念。比如下面几个:print,saveAsObjectFile,saveAsHadoopFiles
forEachRDD:这个算子用得最多,允许用户对Dstream中的每一个批量数据对应的`RDD本身做任意操作,经常用来产生附加效果,比如数据保存到外部系统,打印测试,导出作为图标。
4.窗口算子
时间窗口,窗口由窗口长度和滑动间隔定义。例如:10秒的窗口,5秒的间隔可以定义一个窗口,它每5秒计算一次前10s接收的Dstream数据。
Spark缓存机制和容错机制
和Spark的RDD一样,DStream也可以缓存在内存里。缓存的使用场景也和RDD类似。如果需要多次访问DStream中的数据,缓存会带来很大好处。
RDD是不可变的数据集合,并由输入数据源和类群定义。类群,就是应用到RDD上的转换算子和执行算子的集合。RDD中的容错就是重建因工作节点故障而丢失的RDD。