基于spark streaming的流数据处理和分析

Stream context 相当于spark context

做实时处理就得用到

基于spark streaming的流数据处理和分析_第1张图片

 

基于spark streaming的流数据处理和分析_第2张图片

setup之后如果close你需要重新创建一个,重启是不行的

 

基于spark streaming的流数据处理和分析_第3张图片

 

词频统计,stream context

ssc.start()执行之后,上面代码段才会执行

 

一系列不停的RDD

 

基于spark streaming的流数据处理和分析_第4张图片

 

Receives接收器

 

 

创建多个receivers 你需要 在cluster里

Nifi可以往kafka送,或者sparksteaming从nifi拿

在spark-shell实现wc

基于spark streaming的流数据处理和分析_第5张图片

导包

 

如果已经常创建streamingcontext的话

 

随便给一个端口

打开网口

 源码放出

import org.apache.spark._
import org.apache.spark.streaming._
import org.apache.spark.streaming.StreamingContext._

val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
val ssc = new StreamingContext(conf, Seconds(1))

RDD的join

 

基于spark streaming的流数据处理和分析_第6张图片

Join必须是k,v

 

Rdd分解成若干个分区

不同的分区在不同的进程或者机器上

 

 

一个rdd很多分区,一个节点创建connection不可以传到另一个机器上,为了安全性考虑

基于spark streaming的流数据处理和分析_第7张图片

 所以连接是不可以被序列化或者反序列化

 基于spark streaming的流数据处理和分析_第8张图片

所以在一台机器上创建的connection不可以在多个分区上

所以要foreach每一个

聚合计算处理不一定基于bykey  bywindow

 

基于spark streaming的流数据处理和分析_第9张图片

 

 

只要有这些参数会自动进行窗口的存储

这是内置功能

基于spark streaming的流数据处理和分析_第10张图片

 

下面可以自动还原 stream connection

 如何实施 checkpointing

可以是kafka也可以是flume等等

结构和代码功能雷同

 

 

窗口滑动5-10次应该调用一下这个方法 

你可能感兴趣的:(大数据的点点滴滴)