Spark Streaming源码详解
文章平均质量分 72
snail_gesture
Machine Learning|Deep Learning|BigData
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spark Streaming资源动态申请和动态控制消费速率原理剖析
为什么需要动态? a) Spark默认情况下粗粒度的,先分配好资源再计算。对于Spark Streaming而言有高峰值和低峰值,但是他们需要的资源是不一样的,如果按照高峰值的角度的话,就会有大量的资源浪费。 b) Spark Streaming不断的运行,对资源消耗和管理也是我们要考虑的因素。 Spark Streaming资源动态调整的时候会面临挑战: Spark Streaming原创 2016-05-31 09:35:27 · 3939 阅读 · 1 评论 -
SparkStreaming运行机制和架构详解
本篇博文将从以下几点组织文章: 1. 解密Spark Streaming运行机制 2. 解密Spark Streaming架构 一:解密Spark Streaming运行机制 1. DAG生成模板 :DStreamGrapha) Spark Streaming中不断的有数据流进来,他会把数据积攒起来,积攒的依据是以Batch Interval的方式进行积攒的,例如1秒钟,但是这1秒钟原创 2016-05-08 14:36:38 · 4915 阅读 · 0 评论 -
Spark Streaming基于案例详解
本篇博文将从如下几点组织文章: 一:案例演示 二:源码分析一:案例演示 这里只是贴出源码,后续会对改代码的实战和实验演示都会详细的补充。package com.dt.spark.sparkstreamingimport org.apache.spark.SparkConfimport org.apache.spark.sql.Rowimport org.apache.spark.sql.原创 2016-05-10 22:35:44 · 9682 阅读 · 0 评论 -
Spark Streaming的Exactly-One的事务处理和不重复输出详解
本篇博文组织形式如下: 一:Exactly-One的事务处理 二:输出不重复一:Exactly-One的事务处理 一:Exactly-One的事务处理 1. 什么是事务处理: a) 能够处理且只被处理一次。例如,银行转账,A转给B,A有且仅转一次。 b) 能够输出,且只能够输出一次。而B接收转账,且直接收一次。2. 事务处理会不会失败呢?可能性不大,Spark是批处理的方式来进原创 2016-05-10 23:02:53 · 6355 阅读 · 0 评论 -
Spark Streaming源码解读之Job详解
一:Spark Streaming Job生成深度思考 1. 做大数据例如Hadoop,Spark等,如果不是流处理的话,一般会有定时任务。例如10分钟触发一次,1个小时触发一次,这就是做流处理的感觉,一切不是流处理,或者与流处理无关的数据都将是没有价值的数据,以前做批处理的时候其实也是隐形的在做流处理。 2. JobGenerator构造的时候有一个核心的参数是jobScheduler,原创 2016-05-15 16:53:43 · 14385 阅读 · 1 评论 -
Spark Streaming源码解读之JobScheduler详解
一:JobSheduler的源码解析 1. JobScheduler是Spark Streaming整个调度的核心,相当于Spark Core上的DAGScheduler. 2. Spark Streaming为啥要设置两条线程? setMaster指定的两条线程是指程序运行的时候至少需要两条线程。一条线程用于接收数据,需要不断的循环。而我们指定的线程数是用于作业处理的。 3. Job原创 2016-05-18 22:04:35 · 2539 阅读 · 0 评论 -
Spark Streaming源码解读之RDD生成全生命周期详解
本篇博客将详细探讨DStream模板下的RDD是如何被创建,然后被执行的。在开始叙述之前,先来思考几个问题,本篇文章也就是基于此问题构建的。 1. RDD是谁产生的? 2. 如何产生RDD? 带着这两个问题开启我们的探索之旅。 一:实战WordCount源码如下:object WordCount { def main(args:Array[String]): Unit ={原创 2016-05-18 22:16:47 · 4480 阅读 · 1 评论 -
Spark Streaming源码解读之Receiver在Driver详解
一:Receiver启动的方式设想 1. Spark Streaming通过Receiver持续不断的从外部数据源接收数据,并把数据汇报给Driver端,由此每个Batch Durations就可以根据汇报的数据生成不同的Job。 2. Receiver属于Spark Streaming应用程序启动阶段,那么我们找Receiver在哪里启动就应该去找Spark Streaming的启动。原创 2016-05-20 13:43:19 · 14768 阅读 · 1 评论 -
Spark Streaming源码解读之流数据不断接收详解
特别说明: 在上一遍文章中有详细的叙述Receiver启动的过程,如果不清楚的朋友,请您查看上一篇博客,这里我们就基于上篇的结论,继续往下说。博文的目标是: Spark Streaming在接收数据的全生命周期贯通组织思路如下: a) 接收数据的架构模式的设计 b) 然后再具体源码分析接收数据的架构模式的设计 1. 当有Spark Streaming有application的时候Sp原创 2016-05-23 08:56:35 · 13496 阅读 · 0 评论 -
Spark Streaming源码解读之Driver中的ReceiverTracker详解
本篇博文的目标是: Driver的ReceiverTracker接收到数据之后,下一步对数据是如何进行管理一:ReceiverTracker的架构设计 1. Driver在Executor启动Receiver方式,每个Receiver都封装成一个Task,此时一个Job中就一个Task,而Task中就一条数据,也就是Receiver数据。由此,多少个Job也就可以启动多少个Receiver.原创 2016-05-24 08:33:09 · 11847 阅读 · 0 评论 -
Spark Streaming源码解读之Executor容错安全性
本篇博文的目标是 1. Executor的WAL机制详解 2. 消息重放Kafka数据安全性的考虑:Spark Streaming不断的接收数据,并且不断的产生Job,不断的提交Job给集群运行。所以这就涉及到一个非常重要的问题数据安全性。Spark Streaming是基于Spark Core之上的,如果能够确保数据安全可好的话,在Spark Streaming生成Job的时候里面是基原创 2016-05-24 15:22:36 · 10794 阅读 · 0 评论 -
Spark Streaming源码解读之Driver容错安全性
本篇博文的目标如下: 1. ReceiverBlockTracker容错安全性 2. DStream和JobGenerator容错安全性文章的组织思路如下: 考虑Driver容错安全性,我们要思考什么? 再详细分析ReceiverBlockTracker,DStream和JobGenerator容错安全性一:容错安全性 1. ReceivedBlockTracker负责管理Spa原创 2016-05-24 19:32:11 · 10927 阅读 · 3 评论 -
Spark Streaming源码解读之No Receivers详解
背景: 目前No Receivers在企业中使用的越来越多。No Receivers具有更强的控制度,语义一致性。No Receivers是我们操作数据来源自然方式,操作数据来源使用一个封装器,且是RDD类型的。所以Spark Streaming就产生了自定义RDD –> KafkaRDD.源码分析: 1. KafkaRDD: ** * A batch-oriented interface原创 2016-05-28 16:11:49 · 2625 阅读 · 0 评论 -
Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密
背景: 整个Spark Streaming是按照Batch Duractions划分Job的。但是很多时候我们需要算过去的一天甚至一周的数据,这个时候不可避免的要进行状态管理,而Spark Streaming每个Batch Duractions都会产生一个Job,Job里面都是RDD,所以此时面临的问题就是怎么对状态进行维护?这个时候就需要借助updateStateByKey和mapWit原创 2016-05-26 21:12:19 · 6413 阅读 · 0 评论 -
Spark Streaming源码解读之数据清理内幕彻底解密
本篇博客的主要目的是: 1. 理清楚Spark Streaming中数据清理的流程组织思路如下: a) 背景 b) 如何研究Spark Streaming数据清理? c) 源码解析一:背景 Spark Streaming数据清理的工作无论是在实际开发中,还是自己动手实践中都是会面临的,Spark Streaming中Batch Durations中会不断的产生RDD,这样会不原创 2016-05-29 16:48:50 · 4442 阅读 · 0 评论 -
Spark Streaming入门详解
背景: 使用Spark主要是使用Spark Streaming,Spark Streaming的魔力之所在于: 1. 流式处理,如今是一个流处理时代,一切与流不相关的都是无效的数据。 2. 流式处理才是真正的对大数据的印象。Spark Streaming的流式处理非常强大的一个功能是可以在线处理,ML,Spark SQL等流进来的数据,这也是Spark提供的一体化,多元原创 2016-05-06 11:35:15 · 5120 阅读 · 2 评论
分享