spark streaming
2016-03-01 04:02
183 查看
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
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
相关文章推荐
- php的学习历程
- codeblocks 搭建opencv
- LeetCode Add Digits
- [Immutable.js] Working with Subsets of an Immutable.js Map()
- CentOS6.5安装mysql5.7.11
- [Immutable,js] Iterating Over an Immutable.js Map()
- maven你这个烂东西
- ncurses笔记(1)——ncurses库的介绍与安装
- [Hapi.js] Managing State with Cookies
- 安卓 播放MP3 实现歌词同步例子
- 安卓 播放MP3 实现歌词同步例子
- [Hapi.js] Request Validation with Joi
- HDU 4620 Fruit Ninja Extreme(搜索)
- Java学习源代码学习
- Java学习源代码学习(总一天我能够学习源码!)
- HDU 4619 Warm up 2(贪心、并查集 | 二分图最大独立集)
- HDU 4618 Palindrome Sub-Array(Manacher、二分)
- 队列
- ubuntu---从网页上下载文件到当前目录 和 从本地上传文件到当前目录
- java sha1