spark streaming

Streaming general  structure



DStream    是由一组RDD组成的结构

      和其他DStream互相依赖

      时间间隔

      有一个可以产生RDD的方法

      source code:

               abstract classDStream[]{

                            // time interval

                           def  slideDuration:  Duration

                            // list of parent DStream on which this DStream relies on

                           def   dependencies:  List[DStream[_]]

                           // generate RDDs

                            def   compute(validTime:  Time):   Option[RDD[T]]

              }


操作场景

    无状态(StorageLevel:memory)

         只考虑一个RDD 

    状态 (StorageLevel:persist, checkpoint)

         考虑一组RDDs的累加值

    window(StorageLevel:persist,  checkpoint)

        窗口长度

        滑动长度

         优化    ReduceByWindow




两种类型
  back pressure
  receiver

 http://www.jianshu.com/p/87e2d66d92bb



容错

      数据源来自网络

              默认会加载数据到两个节点

      数据源来自外部文件系统

              通过linearage恢复数据,重新读取数据


优化原则:

1.   批次数据量要让系统能消化 

2.   控制reduce数量

            inputStream.repartition

            spark.streaming.blockInterval   //形成block时间间隔

            spark.default.parallelsm   //把reduce任务分配到多台机器上

3.   序列化 

           task , RDD, 输入数据

4.   内存调优

           清理缓存RDD

                   spark.cleaner.ttl

                   spark.streaming.unpersis

           GC


code structure:

//一秒采样一次数据

val ssc = new StreamingContext(SparkConf,Seconds(1))

//定义负责链接的DStream  DStream是一系列RDD的集合序列                 -->   实际上是数据源,输入  

val lines = ssc.socketTextStream(serverIP,serverPORT)

//lines的每行是一个RDD  对每个RDD 进行操作                                       -->   实际上是业务逻辑  transformation/引入外部系统

var words = lines.flatMap(_.split(" "))

//output                                                                                                                -->   实际上是输出  

print/foreachRDD/saveAsTextFiles






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值