Spark发行版笔记
罗白莲
这个作者很懒,什么都没留下…
展开
-
第3课:解密SparkStreaming运行机制和架构进阶之Job和容错
本期内容:1、解密Spark Streaming Job架构和运行机制2、解密Spark Streaming容错架构和运行机制运行过程dstream.SocketInputDStreamscheduler.ReceivedBlockTrackerscheduler.InputInfoTrackerscheduler.JobSchedulerscheduler.DAG原创 2016-05-15 20:59:37 · 703 阅读 · 0 评论 -
第8课:Spark Streaming源码解读之RDD生成全生命周期彻底研究和思考
本期内容:1. DStream与RDD关系彻底研究2. Straming中RDD的生产彻底研究示例代码:spark-1.6.1/example/src/main/scala/org/apachRDD的三个问题1.RDD到底是怎么生成的2.具体执行的时候,是否和基于Spark Core上的RDD有所不同,runtime级别的3.运行之后我们原创 2016-05-21 17:28:03 · 575 阅读 · 0 评论 -
第9课:Spark Streaming源码解读之Receiver在Driver的精妙实现全生命周期彻底研究和思考
首先随着应用程序的启动而启动receiver,spark core不知道启动了一个receiver。启动一个job有RDD的transform,action,这个job里只有一个partition,而且这个有个特殊的地方partition在于,一个partition只有一个数据成员,这个数据成员就是receiver。可能出现不好的结果1.在同一个executer上启动多个receive原创 2016-05-21 17:29:52 · 1268 阅读 · 0 评论 -
第10课:Spark Streaming源码解读之流数据不断接收全生命周期彻底研究和思考
写个大数据应用程序而言性能最重要,架构设计和稳定性 源码ReceiverTracker.scalastart/** Start the endpoint and receiver execution thread. */def start(): Unit = synchronized { if (isTrackerStarted) { throw new S原创 2016-05-22 18:07:35 · 530 阅读 · 0 评论 -
第11课:Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究
本期内容:1.ReceiverTracker的架构设计2.消息循环系统3.ReceiverTracker具体实现 启动Receiver的方式:1.把每个Receiver都封装成为task,这个task是这个job中唯一的task,实质上讲ReceiverTracker启动Receiver的方式就是封装成一个一个的job,有多少个job就会启动多少Receiver。每个tas原创 2016-05-22 18:08:11 · 599 阅读 · 0 评论 -
第12课:Spark Streaming源码解读之executor容错安全性
本期内容:1.Executor的WAL2.消息重放3.其它 StorageLevel.scalaMemory不够的时候才考虑diskclassStorageLevelprivate( private var _useDisk: Boolean, private var _useMemory: Boolean, private var _原创 2016-05-22 18:08:58 · 755 阅读 · 0 评论 -
第13课:Spark Streaming源码解读之Driver容错安全性
本期内容:1.ReceivedBlockTracker容错安全性2. DStream和JobGenerator容错安全性 ReceivedBlockTracker跟踪数据需要状态。DStream表达了依赖关系,在你恢复的数据时候需要恢复计算逻辑级别依赖关系,当然需要容错。JobGenerator:作业生成层面,表明你正在基于怎么ReceivedBlockTracker中的数原创 2016-05-22 21:41:55 · 500 阅读 · 0 评论 -
第18课:Spark Streaming中空RDD处理及流处理程序优雅的停止
1.SparkStreaming中空RDD处理JobGenerator/** Generate jobsand perform checkpoint for the given`time`. */private def generateJobs(time: Time) { // Set the SparkEnv in this thread, so that jobgene原创 2016-06-21 13:41:41 · 2791 阅读 · 0 评论 -
第19课:Spark Streaming架构设计和运行机制大总结
1.sparkStreaming中架构设计和运行机制2.SparkStreaming深度思考 Spark Streaming的本质是在Spark的RDD的基础之上加上了Timer,Timer不断的运行触发周而复始的接受数据,产生Job处理数据。因为时间是流动的,所以加上了时间维度的话,RDD也是流动的,所谓RDD的流动,就是每隔时间间隔,都会有新的RDD实例产生,这个实例来自于DS原创 2016-06-21 13:42:30 · 977 阅读 · 0 评论 -
第17课:Spark Streaming资源动态申请和动态控制消费速率原理剖析
高级特性:1、Spark Streaming资源动态分配2、Spark Streaming动态控制消费速率原理剖析,动态控制消费速率其后面存在一套理论,资源动态分配也有一套理论。先讲理论,后面讨论。Heron可能替代strom为什么要动态资源分配和动态控制速率?Spark默认是先分配资源,然后计算;粗粒度的分配方式,资源提前分配好,有计算任务提前分配好资源;不好的地方:原创 2016-05-31 17:11:02 · 1336 阅读 · 0 评论 -
第16课:Spark Streaming源码解读之数据清理内幕彻底解密
本讲从二个方面阐述:数据清理原因和现象数据清理代码解析 Spark Core从技术研究的角度讲对Spark Streaming研究的彻底,没有你搞不定的Spark应用程序。Spark Streaming一直在运行,不断计算,每一秒中在不断运行都会产生大量的累加器、广播变量,所以需要对对象及元数据需要定期清理。每个batch duration运行时不断触发job后需要清理rdd和原创 2016-05-31 16:52:56 · 1086 阅读 · 0 评论 -
第5课:基于案例一节课贯通Spark Streaming流计算框架的运行源码
本期内容:1、在线动态计算分类最热门商品案例回顾与演示2、基于案例贯通Spark Streaming的运行源码第一部分案例:OnlineTheTop3ItemForEachCategory2DB.scalapackage com.dt.spark.sparkstreamingimport com.robinspark.utils.ConnectionPoolimport原创 2016-05-15 21:02:19 · 621 阅读 · 0 评论 -
第6课:Spark Streaming源码解读之Job动态生成和深度思考
本期内容:1.SparkStreaming job生成深度思考1.SparkStreaming job生成源码解析 基于DStream Graph动态生成jobs, JobScheduler是sparkStreaming作业生成和提交给集群的核心.SparkStreaming中除了定时生成的job,还有其他的方式生成job(各种聚合,状态)1.DStream大体分为三种类型原创 2016-05-15 21:03:39 · 505 阅读 · 0 评论 -
第7课:Spark Streaming源码解读之JobScheduler内幕实现和深度思考
本期内容:1. JobScheduler内幕实现2. JobScheduler深度思考 所有工作的关键都是jobSchedulerSparkStreaming至少要设置两条线程是因为一条用于接收数据,一条用于计算,调度和执行分离开。源码StreamingContext.scalaStart()/** * Start the execution of the原创 2016-05-15 21:04:54 · 2098 阅读 · 0 评论 -
第4课:Spark Streaming事务处理彻底掌握
本期内容1、Exactly Once2、输出不重复事务: 银行转帐为例,A用户转账给B用户,B用户可能收到多笔钱,如何保证事务的一致性,也就是说事务输出,能够输出且只会输出一次,即A只转一次,B只收一次。从事务视角解密SparkStreaming架构: SparkStreaming应用程序启动,会分配资源,除非整个集群硬件资源崩溃,一般情况下都不会有问题。Spar原创 2016-05-15 21:00:53 · 738 阅读 · 0 评论 -
第2课:解密SparkStreaming运行机制和架构
本期内容:1解密Spark Streaming运行机制2解密Spark Streaming架构 一切不能进行实时流处理的数据都是无效的数据。在流处理时代,SparkStreaming有着强大吸引力,而且发展前景广阔,加之Spark的生态系统,Streaming可以方便调用其他的诸如SQL,MLlib等强大框架,它必将一统天下。 Spark Streaming运行时与其说原创 2016-05-15 20:57:30 · 650 阅读 · 1 评论 -
第1课:解密SparkStreaming另类实验及SparkStreaming本质解析
本期内容1 sparkStreaming另类在线实验2瞬间理解sparkStreaming本质sparkStreaming本身是随着流进来数据,按照时间为单位生成job,触发job在 clustr执行的流式处理引擎。(解偶合)sparkStreaming本质是加上了时间维度的批处理。在流处理时代,SparkStreaming有着强大吸引力,而且发展前景广阔,加之Spark的生态系统原创 2016-05-15 20:51:38 · 884 阅读 · 0 评论 -
第14课:Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密
背景: 整个Spark Streaming是按照Batch Duractions划分Job的。但是很多时候我们需要算过去的一天甚至一周的数据,这个时候不可避免的要进行状态管理,而Spark Streaming每个Batch Duractions都会产生一个Job,Job里面都是RDD,所以此时面临的问题就是怎么对状态进行维护?这个时候就需要借助updateStateByKey和mapWi原创 2016-05-31 16:51:32 · 1567 阅读 · 0 评论 -
第15课:Spark Streaming源码解读之No Receivers彻底思考
receive和no receiver的方式(derict的方式)封装器一定是RDD类型的KafkaRDD,是为不同的数据来源推出不同的RDDforeachRDD中就可以获得当前batch duration中产生的RDD的分区的数据,RDD所访问的所有分驱的数据。 建议企业级采用no receivers方式开发Spark Streaming应用程序,好处:1、更优秀的自由度控制原创 2016-05-31 16:52:08 · 936 阅读 · 0 评论 -
第20课:Spark Streaming中动态Batch Size实现初探
1.BatchDuration与ProcessTime2.动态Batch SizeBatch越小越快,越快越安全Spark.streaming.receiver.maxRate 设置最大速率Spark.streaming.backpressure.rateEstimator要设置成true,最大限定数率原创 2016-06-21 13:43:34 · 700 阅读 · 0 评论