Spark流编程指引(三)-------------------------------------初始化StreamingContext
来源:互联网 发布:淘宝企业店铺开店要求 编辑:程序博客网 时间:2024/06/05 01:13
基本概念
接下来,我们在上一节例子的基础上,来阐述Spark Streaming的基本知识。
链接
和Spark类似,Spark Streaming也包含在maven的中央仓库中。为了写基于Spark Streaming的程序,你需要为你的SBT或Maven工程分别添加以下依懒:
Maven:
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.10</artifactId> <version>1.4.0</version></dependency>
SBT:
libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.4.0"
为了从Kafka, Flume, 和 Kinesis等源中提取数据,你需要添加额外的依懒。因为Spark Streaming的核心API并不直接支持。下面是一些常用的依懒:
要获得最新的列表,请在maven中央仓库Maven repository查看支持的源和坐标。
初始化StreamingContext
为了初始化一个Spark Streaming程序,需要创建一个StreamingContext对象,它是所有Spark Streaming功能的主入口点。
可以从一个SparkConf对象创建一个StreamingContext
import org.apache.spark._import org.apache.spark.streaming._val conf = new SparkConf().setAppName(appName).setMaster(master)val ssc = new StreamingContext(conf, Seconds(1))
appName参数是你的应用程序在集群UI上的名字。master是Spark, Mesos或者YARN cluster 的URL,或者用"local[*]'字符串表示运行在本地模式。
在实践中,当在集群上运行程序时,你不希望硬编码master的值。你可以通过从spark-submit启动你的程序,并指明参数。然而,为了本地测试或者单元测试,你可以传递"local[*]”参数来运行Spark Streaming程序。注意,你可以通过ssc.SparkContext的方式来访问SparkContext.
批处理的间隔需要根据你的应用程序的延迟要求和可用的集群资源来设置。
SparkStreaming对象也可以由已经存在的SparkContext来创建:
import org.apache.spark.streaming._val sc = ... // existing SparkContextval ssc = new StreamingContext(sc, Seconds(1))
在创建了context之后,你需要做以下几步:
1.通过创建输入DStreams来定义输入源
2.通过对DStreams应用转变操作和输出操作来定义流计算。
3.用streamingContext.start()来开始接收数据和处理流程。
4.通过streamingContext.awaitTermination()方法来等待处理结束(手动结束或因为错误)
5.还可以通过streamingContext.stop()来手动结束进程。
需要记住的关键点:
1.一旦context启动后,就不能再添加新的streaming计算或操作。
2.一旦context停止后,就不能再重新启动它了。
3.在同一时间内,一个JVM上只能运行一个StreamingContext
4.在StreamingContext上的stop()操作也会将SparkContext停止。如果只想停止StreamingContext,对stop的可选参数stopSparkContext设置为false.
5.一个SparkContext可以用来创建多个StreamingContext,只要前一个StreamingContext已经停止了。
- Spark流编程指引(三)-------------------------------------初始化StreamingContext
- Spark流编程指引(三)-------------------------------------初始化StreamingContext
- [Spark]Spark Streaming 指南二 初始化StreamingContext
- spark streaming programming guide 基础概念之初始化StreamingContext(三b)
- Spark流编程指引(一)---------------------概述
- Spark编程指引(三)-----------------RDD操作,shuffle和持久化
- Spark流编程指引(二)----------------------一个快速的例子
- Spark Streaming之一:StreamingContext解析
- spark streamingcontext 一些注意点
- 5.Spark Streaming:StreamingContext详解
- Spark流编程指引(四)---------------------------DStreams基本模型,输入DStreams和接收者
- Spark流编程指引(五)-----------------------------DStreams上的转换操作
- Spark流编程指引(六)-----------------------DStreams上的输出操作
- spark streaming源码分析1 StreamingContext
- spark streaming源码分析1 StreamingContext
- spark的streamingcontext的另一种创建方式
- Spark编程指引(四)------------------共享变量(广播变量和累加器)
- Spark编程指引(四)----共享变量(广播变量和累加器)
- 教你怎么查微信聊天记录?
- Codeforces Round #310 (Div. 1) B. Case of Fugitive
- Android应用的打包
- awk应用-信息的检索
- Android下使用AIDL进行通信
- Spark流编程指引(三)-------------------------------------初始化StreamingContext
- Python requests 自动登录某财BBS,自动签到打卡领铜钱,最后再配个plist,每天自动执行
- 第十六周项目3:max带来的冲突
- 黑马程序员-【JAVA基础】-异常处理机制
- 排序2-希尔排序
- 初识 javase(下)
- 边双连通模板
- 算法——bit处理数据
- android系统架构各层的一些介绍