通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶
2017-01-18 11:40
411 查看
//设置batchDuration时间间隔
val ssc =new StreamingContext (conf,Seconds
(5))
真正的调度 ssc.start
在StreamingContext调用start方法的内部其实是一次启动JobScheduler的start方法,进入消息循环。
在调用Scheduler内部构造JobGenerator和ReceiverTracker,并且调用JobGenerator和ReceiverTracker的start方法。JobGenerator启动后不断根据BatchDuration生成job
ReceiverTracker启动后在集群中启动Receiver,首先启动ReceiverSupersivor
数据通过ReceiverSupersivor 存储到Executor并把数据的Metadata信息发送到Driver的ReceiverTracker,在ReceiverTracker内部通过ReceiverdBlockTracker来管理接收到的数据
有了job,有了数据,要产生RDD,怎么表达业务逻辑呢,要依赖于DstreamGraph,线程池复制,提交到cluster
每个BatchInterval会产生一个具体的job,其实这里的JOB不是Spark CORE
中所指的JOB,只是基于DstreamGraph而生成的RDD的DAG而已,从Java角度,相对于Runnable接口实例,此时想运行job需要提交到JobScheduler,在JobsCheduler中通过单独的线程提交job到集群运行,其实在线程中基于RDD的ACtion触发作业的运行。为什么使用线程池呢?
1、作业不断生成,提升效率,需要线程池
2、有可能设置的Job的FAIR公平调度的方式,也需要多线程的支持
容错
1、job级别
2、executor级别接收数据安全性,执行数据安全性
val ssc =new StreamingContext (conf,Seconds
(5))
真正的调度 ssc.start
在StreamingContext调用start方法的内部其实是一次启动JobScheduler的start方法,进入消息循环。
在调用Scheduler内部构造JobGenerator和ReceiverTracker,并且调用JobGenerator和ReceiverTracker的start方法。JobGenerator启动后不断根据BatchDuration生成job
ReceiverTracker启动后在集群中启动Receiver,首先启动ReceiverSupersivor
数据通过ReceiverSupersivor 存储到Executor并把数据的Metadata信息发送到Driver的ReceiverTracker,在ReceiverTracker内部通过ReceiverdBlockTracker来管理接收到的数据
有了job,有了数据,要产生RDD,怎么表达业务逻辑呢,要依赖于DstreamGraph,线程池复制,提交到cluster
每个BatchInterval会产生一个具体的job,其实这里的JOB不是Spark CORE
中所指的JOB,只是基于DstreamGraph而生成的RDD的DAG而已,从Java角度,相对于Runnable接口实例,此时想运行job需要提交到JobScheduler,在JobsCheduler中通过单独的线程提交job到集群运行,其实在线程中基于RDD的ACtion触发作业的运行。为什么使用线程池呢?
1、作业不断生成,提升效率,需要线程池
2、有可能设置的Job的FAIR公平调度的方式,也需要多线程的支持
容错
1、job级别
2、executor级别接收数据安全性,执行数据安全性
相关文章推荐
- 第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶
- 第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶.
- 通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错
- 第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错
- 第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错
- 第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错
- Spark定制班第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错
- Spark定制班第3课:通过案例对SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错
- Spark定制班第3课:通过案例对SparkStreaming透彻理解三板斧之三:解密Spark Streaming运行机制和架构进阶之Job和容错
- 第2课:通过案例对SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构
- 通过案例对SparkStreaming透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构
- 第2课:通过案例对SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构
- 第2课:通过案例对SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构
- 第2课:通过案例对SparkStreaming 透彻理解三板斧之二:解密:Spark Streaming运行机制和架构解析
- 第2课:通过案例对SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构
- 第2课:通过案例对SparkStreaming透彻理解三板斧之二:解密SparkStreaming运行机制和架构
- Spark定制班第2课:通过案例对Spark Streaming透彻理解三板斧之二:解密Spark Streaming运行机制和架构
- 通过案例对SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制
- 定制班第二课 -----通过案例对Spark Streaming透彻理解三板斧之二:解密SparkStreaming运行机制和架构
- 通过案例对SparkStreaming 透彻理解三板斧之一:解密SparkStreaming运行机制