SparkStreaming注意要点

本文介绍了SparkStreaming的StreamingContext,强调了启动上下文后的限制,包括不能添加新计算、上下文不能重启以及只能激活一个StreamingContext。讨论了Input DStreams的类型,提醒在本地运行时避免使用'local'或'local [1]'。提到了updateStateByKey的使用及潜在问题,推荐使用实验性的mapWithState。此外,讲解了Output Operations,如print()和foreachRDD()的使用细节,以及Window Operations和transform操作的概念。最后,提醒了窗口间隔设置和资源优化的重要性。
摘要由CSDN通过智能技术生成

http://spark.apache.org/docs/latest/streaming-programming-guide.html
Spark官网已经已经将用法与概念写的很详细了。这里写一点平时需要注意的要点。

Spark:是以批处理为主,用微批处理来处理流数据
Flink:以流处理为主,用流处理来处理批数据


StreamingContext

ssc ==> Source ==> DStream ==> Transformation ==> Ouput

StreamingContext是所有流功能的主要入口点

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

进入StreamingContext源码发现有一个主构造器与两个附属构造器

class StreamingContext private[streaming] (
    _sc: SparkContext,
    _cp: Checkpoint,
    _batchDur: Duration
  )

def this(sparkContext: SparkContext, batchDuration: Duration) = {
    this(sparkContext, null, batchDuration)
}


def this(conf: SparkConf, batchDuration: Duration) = {
    this(StreamingContext.createNewSparkContext(conf), null, batchDuration)
}

要记住的要点:

  • 一旦启动了上下文,就不能设置或添加新的流式计算。
  • 上下文停止后,无法重新启动。
  • 在JVM中只能同时激活一个StreamingContext。
  • StreamingContext上的stop()也会停止SparkContext。要仅停止StreamingContext,请将stop()called 的可选参数设置- stopSparkContext为false。
  • 只要在创建下一个StreamingContext之前停止前一个StreamingContext(不停止SparkContext),就可以重复使用SparkContext创建多个StreamingContexts。

Input DStreams and Receivers:
Input Dstreams分为两种:一种是有receiver的,一种是没有receiver的(t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值