Spark流编程指引(三)-------------------------------------初始化StreamingContext
一些事情待验证,此处mark
基本概念
接下来,我们在上一节例子的基础上,来阐述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并不直接支持。下面是一些常用的依懒:
Source | Artifact |
---|---|
Kafka | spark-streaming-kafka_2.10 |
Flume | spark-streaming-flume_2.10 |
Kinesis | spark-streaming-kinesis-asl_2.10 [Amazon Software License] |
spark-streaming-twitter_2.10 | |
ZeroMQ | spark-streaming-zeromq_2.10 |
MQTT | spark-streaming-mqtt_2.10 |
要获得最新的列表,请在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 SparkContext
val 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已经停止了。
本文转自http://blog.csdn.net/happyanger6/article/details/46673515,所有权力归原作者所有。
Spark流编程指引(三)-------------------------------------初始化StreamingContext相关推荐
- 如何使用Kafka API入门Spark流和MapR流
这篇文章将帮助您开始使用Apache Spark Streaming通过MapR Streams和Kafka API消费和发布消息. Spark Streaming是核心Spark API的扩展,可实 ...
- spark和kafka_如何使用Kafka API入门Spark流和MapR流
spark和kafka 这篇文章将帮助您开始使用Apache Spark Streaming通过MapR Streams和Kafka API消费和发布消息. Spark Streaming是核心Spa ...
- Apache Spark 3.0 结构化Streaming流编程指南
目录 总览 快速范例 Scala语言 Java语言 Python语言 R语言 程式设计模型 基本概念 处理事件时间和延迟数据 容错语义 使用数据集和数据帧的API 创建流数据框架和流数据集 流数据帧/ ...
- hive编程指南电子版_第三篇|Spark SQL编程指南
在<第二篇|Spark Core编程指南>一文中,对Spark的核心模块进行了讲解.本文将讨论Spark的另外一个重要模块--Spark SQL,Spark SQL是在Shark的基础之上 ...
- spark-sql建表语句限制_第三篇|Spark SQL编程指南
在<第二篇|Spark Core编程指南>一文中,对Spark的核心模块进行了讲解.本文将讨论Spark的另外一个重要模块--Spark SQL,Spark SQL是在Shark的基础之上 ...
- hive编程指南_第三篇|Spark SQL编程指南
在<第二篇|Spark Core编程指南>一文中,对Spark的核心模块进行了讲解.本文将讨论Spark的另外一个重要模块--Spark SQL,Spark SQL是在Shark的基础之上 ...
- 客快物流大数据项目(五十四):初始化Spark流式计算程序
目录 初始化Spark流式计算程序 一.SparkSql参数调优设置 1.设置会话时区
- Spark Streaming 编程指南[中英对照]
2019独角兽企业重金招聘Python工程师标准>>> 基于Spark 2.0 Preview的材料翻译,原[英]文地址: http://spark.apache.org/docs/ ...
- 编程实现将rdd转换为dataframe:源文件内容如下(_第四篇|Spark Streaming编程指南(1)
Spark Streaming是构建在Spark Core基础之上的流处理框架,是Spark非常重要的组成部分.Spark Streaming于2013年2月在Spark0.7.0版本中引入,发展至今 ...
最新文章
- Oracle Goldengate Windows平台Oracle-Oracle单向复制
- Recursive sequence HDU - 5950
- 黑科技!当会爬虫的Python遇上会画图的FineBI……
- Nachos编译与使用--Nachos配置
- 多闭环PID控制算法
- 【机器学习详解】KNN分类的概念、误差率及其问题
- 让微软起死回生之作:CEO纳德拉18年新书《刷新》
- 华为系列服务器账号密码,常用设备管理口默认用户名密码汇总
- Java集合移除某个元素
- Web前端开发的十佳前端框架优缺点
- Stata 基础知识 1
- leetcode 1313. Decompress Run-Length Encoded List(python)
- 历届试题 矩阵翻硬币 蓝桥杯 大数开方 大数相乘
- LeetCode:292. Nim Game Nim 游戏(C语言)
- 连续型随机变量的分布(均匀分布、指数分布、正态分布)
- 桌面上ie图标不见了,怎样恢复
- ROS教程(二十一):Roslaunch在大型项目中的使用技巧
- p2psear正在连接服务器,P2PSearcher怎么用?无法连接问题解决
- 计算机二级不参加会记入诚信档案吗,考生必看!弃考会被记入诚信档案吗?
- 主板螺丝是机箱配还是主板配_电脑机箱螺丝规格详解 DIY装机容易忽视的小玩意...