大数据-SparkStreaming

官方学习网址: 

https://spark.apache.org/docs/latest/streaming-programming-guide.html#a-quick-example

SparkStreaming介绍:

 StreamingContext is the main entry point for all streaming functionality

要初始化Spark Streaming程序,必须创建一个StreamingContext对象,它是所有Spark Streaming功能的主要入口点。

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


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


batch interval可以根据你的应用程序需求的延迟要求以及集群可用的资源情况来设置

要记住的要点:
  • 一旦上下文已经启动,就不能建立或添加新的流式计算。
  • 一旦上下文被停止,它就不能被重新启动。
  • 同时只有一个StreamingContext可以在JVM中处于活动状态。
  • StreamingContext上的stop()也会停止SparkContext。要仅停止StreamingContext,请将可选参数stop()调用stopSparkContext为false。
  • 只要先前的StreamingContext在创建下一个StreamingContext之前停止(不停止SparkContext),就可以重新使用SparkContext来创建多个StreamingContext。

在定义上下文之后,您必须执行以下操作。

  1. 通过创建输入DStream来定义输入源。
  2. 通过将转换和输出操作应用于DStream来定义流式计算。
  3. 开始接收数据并使用它进行处理streamingContext.start()
  4. 等待处理停止(手动或由于任何错误)使用streamingContext.awaitTermination()
  5. 处理可以使用手动停止streamingContext.stop()


Discretized Streams (DStream):

DStream是Spark Streaming提供的基本抽象。它表示连续的数据流,即从源接收的输入数据流或通过转换输入流生成的已处理数据流。

Internally, a DStream is represented by a continuous series of RDDs

Each RDD in a DStream contains data from a certain interval

对DStream操作算子,比如map/flatMap,其实底层会被翻译为对DStream中的每个RDD都做相同的操作;
因为一个DStream是由不同批次的RDD所构成的。

在DStream上应用的任何操作都会转化为对基础RDD的操作。

在本地运行Spark Streaming程序时,请勿使用“local”或“local [1]”作为主URL。这两者中的任何一个意味着只有一个线程将用于本地运行任务

在本地运行时,请始终使用“local [ n ]”作为主URL,其中n >要运行的接收器的数量

将逻辑扩展到在群集上运行,分配给Spark Streaming应用程序的内核数量必须多于接收器的数量。否则系统将接收数据,但无法处理它


Spark Streaming提供了两类内置流媒体源。

  • 基本来源:StreamingContext API中直接可用的来源。示例:文件系统和套接字连接。
  • 高级来源:可通过额外的实用程序课程获得Kafka,Flume,Kinesis等来源。这些要求链接部分中讨论的额外依赖关系 



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值