- 博客(52)
- 资源 (4)
- 收藏
- 关注

原创 Spark 源码解析 : DAGScheduler中的DAG划分与提交
一、Spark 运行架构Spark 运行架构如下图:各个RDD之间存在着依赖关系,这些依赖关系形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG,进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。完成了Stage的划分,DAGScheduler基于每个Stage生成TaskSet,并将Ta
2016-07-20 09:31:17
6517
7

原创 10.Spark Streaming源码分析:Receiver数据接收全过程详解
原创文章,转载请注明:转载自 听风居士博客(http://blog.youkuaiyun.com/zhouzx2010) 在上一篇中介绍了Receiver的整体架构和设计原理,本篇内容主要介绍Receiver在Executor中数据接收和存储过程一、Receiver启动过程回顾如图,从ReceiverTracker的start方法开始,调用launchRece
2016-05-26 08:55:07
4318

原创 7.spark Streaming 技术内幕 : 从DSteam到RDD全过程解析
7.spark Streaming 技术内幕 : 从DSteam到RDD全过程解析原创文章,转载请注明:转载自 周岳飞博客(http://blog.youkuaiyun.com/zhouzx2010) 上篇博客讨论了Spark Streaming 程序动态生成Job的过程,并留下一个疑问: JobScheduler将动态生成的Job提交,然后调用了Job对象的run方法,最后run方法的
2016-05-20 12:36:05
13995
1

原创 深入解析单例线程安全问题
原创文章,转载请注明:转载自 周岳飞博客(http://zhou-yuefei.iteye.com/)首先回顾一下单例模式(Singleton)单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省
2015-06-12 18:43:52
721
原创 超简教程:Xgboost在Window上的安装(免编译)
Xboost在windows安装需要自己编译,编译的过程比较麻烦,而且需要复杂的软件环境。为了免去编译,我这里把编译好的文件上传到网盘供大家下载安装。有了编译好的文件,xgboost的安装变得超级简单1.下载文件 包括xgboost代码和编译好的dll文件:链接:http://pan.baidu.com/s/1o8mGTQU 密码:xvv22.将x
2017-06-02 14:09:14
1595
5
原创 Spark 源码解析:彻底理解TaskScheduler的任务提交和task最佳位置算法
上篇文章《 Spark 源码解析 : DAGScheduler中的DAG划分与提交》介绍了DAGScheduler的Stage划分算法。原创文章,转载请注明:转载自 听风居士博客(http://blog.youkuaiyun.com/zhouzx2010) 本文继续分析Stage被封装成TaskSet,并将TaskSet提交到集群的Executor执行的过程
2016-08-06 10:04:57
5528
原创 Spark 源码解析 : DAGScheduler中的DAG划分与提交
一、Spark 运行架构 Spark 运行架构如下图:各个RDD之间存在着依赖关系,这些依赖关系形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG,进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。完成了Stage的划分,DAGScheduler基于每个Stage生成TaskSet,并将TaskSet...
2016-07-20 10:35:54
240
16.Spark Streaming源码解读之数据清理机制解析
原创文章,转载请注明:转载自听风居士博客(http://zhou-yuefei.iteye.com/)本期内容:一、Spark Streaming 数据清理总览二、Spark Streaming 数据清理过程详解三、Spark Streaming 数据清理的触发机制 Spark Streaming不像普通Spark 的应用程序,普通Spark程序运行完成后,中间数...
2016-07-01 15:13:38
501
原创 16.Spark Streaming源码解读之数据清理机制解析
原创文章,转载请注明:转载自 听风居士博客(http://blog.youkuaiyun.com/zhouzx2010)本期内容:一、Spark Streaming 数据清理总览二、Spark Streaming 数据清理过程详解三、Spark Streaming 数据清理的触发机制 Spark Streaming不像普通Spark 的应用程序,普
2016-07-01 14:47:24
2735
14.Spark Streaming源码解读:State管理之updateStateByKey和mapWithState解密
首先简单解释一下什么是state(状态)管理?我们以wordcount为例。每个batchInterval会计算当前batch的单词计数,那如果需要计算从流开始到目前为止的单词出现的次数,该如计算呢?SparkStreaming提供了两种方法:updateStateByKey和mapWithState 。mapWithState 是1.6版本新增功能,目前属于实验阶段。mapWithSt...
2016-06-04 00:10:27
295
原创 14:Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密
首先简单解释一下什么是state(状态)管理?我们以wordcount为例。每个batchInterval会计算当前batch的单词计数,那如果需要计算从流开始到目前为止的单词出现的次数,该如计算呢?SparkStreaming提供了两种方法:updateStateByKey和mapWithState 。mapWithState 是1.6版本新增功能,目前属于实验阶段。mapWithState
2016-06-03 09:26:39
1297
15、Spark Streaming源码解读之No Receivers彻底思考
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明,否则将追究法律责任。在前几期文章里讲了带Receiver的Spark Streaming 应用的相关源码解读,但是现在开发Spark Streaming的应用越来越多的采用No Receivers(Direct Approach)的方式,No Receiver的方式的优势: 1. 更强...
2016-06-03 09:07:28
223
原创 15、Spark Streaming源码解读之No Receivers彻底思考
在前几期文章里讲了带Receiver的Spark Streaming 应用的相关源码解读,但是现在开发Spark Streaming的应用越来越多的采用No Receivers(Direct Approach)的方式,No Receiver的方式的优势: 1. 更强的控制自由度 2. 语义一致性 其实No Receivers的方式更符合我们读取数据,操作数据的思路的。因为Spark
2016-06-02 23:23:00
789
原创 12、Spark Streaming源码解读之Executor容错安全性
一、Spark Streaming 数据安全性的考虑:Spark Streaming不断的接收数据,并且不断的产生Job,不断的提交Job给集群运行。所以这就涉及到一个非常重要的问题数据安全性。Spark Streaming是基于Spark Core之上的,如果能够确保数据安全可好的话,在Spark Streaming生成Job的时候里面是基于RDD,即使运行的时候出现问题,那么Spa
2016-05-30 09:46:50
647
原创 第12课:Spark Streaming源码解读之Executor容错安全性
一、Spark Streaming 数据安全性的考虑:Spark Streaming不断的接收数据,并且不断的产生Job,不断的提交Job给集群运行。所以这就涉及到一个非常重要的问题数据安全性。Spark Streaming是基于Spark Core之上的,如果能够确保数据安全可好的话,在Spark Streaming生成Job的时候里面是基于RDD,即使运行的时候出现问题,那么S...
2016-05-28 23:22:09
157
原创 Spark streaming源码分析之Job动态生成原理与源码解析
原创文章,转载请注明:转载自 周岳飞博客(http://blog.youkuaiyun.com/zhouzx2010) Spark streaming 程序的运行过程是将DStream的操作转化成RDD的操作,Spark Streaming 和 Spark Core 的关系如下图(图片来自spark官网)Spark Streaming 会按照程序设定的时间间隔不断动态生成Job来处理输
2016-05-28 12:57:37
611
11.Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究...
原创文章,转载请注明:转载自 听风居士博客(http://zhou-yuefei.iteye.com/) 上篇文章详细解析了Receiver不断接收数据的过程,在Receiver接收数据的过程中会将数据的元信息发送给ReceiverTracker: 本文将详细解析ReceiverTracker的的架构设计和具体实现 一、ReceiverTracker的主...
2016-05-28 12:39:31
168
原创 11.Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究
上篇文章详细解析了Receiver不断接收数据的过程,在Receiver接收数据的过程中会将数据的元信息发送给ReceiverTracker:本文将详细解析ReceiverTracker的的架构设计和具体实现
2016-05-28 12:32:58
825
原创 Spark Streaming源码分析之Receiver在Driver的实现全生命周期
Spark streaming 程序需要不断接收新数据,然后进行业务逻辑处理,而用于接受数据的就是Recever。显然Receiver的正常运行对应整个Spark Streaming应用程序至关重要,如果Receiver出现异常,后面的业务逻辑就无从谈起。Spark Streaming 是如何实现Receiver以保证其可靠性的,本文将结合Spark Streaming的Receiver源码实
2016-05-27 07:42:39
794
10.Spark Streaming源码分析:Receiver数据接收全过程详解
原创文章,转载请注明:转载自 听风居士博客(http://zhou-yuefei.iteye.com/)在上一篇中介绍了Receiver的整体架构和设计原理,本篇内容主要介绍Receiver在Executor中数据接收和存储过程 一、Receiver启动过程回顾如图,从ReceiverTracker的start方法开始,调用launchReceivers()方法,给...
2016-05-26 14:22:33
133
原创 10.Spark Streaming源码分析:Receiver数据接收全过程详解
在上一篇中介绍了Receiver的整体架构和设计原理,本篇内容主要介绍Receiver在Executor中数据接收和存储过程一、Receiver启动过程回顾如图,从ReceiverTracker的start方法开始,调用launchRece
2016-05-26 09:01:11
517
原创 Spark streaming技术内幕6 : Job动态生成原理与源码解析
原创文章,转载请注明:转载自听风居士博客(http://blog.youkuaiyun.com/zhouzx2010)Spark streaming 程序的运行过程是将DStream的操作转化成RDD的操作,Spark Streaming 和 Spark Core 的关系如下图(图片来自spark官网)Spark Streaming 会按照程序设定的时间间隔不断动态生成Job来处理
2016-05-24 10:27:04
719
9. Spark Streaming技术内幕 : Receiver在Driver的精妙实现全生命周期彻底研究和思考...
原创文章,转载请注明:转载自 听风居士博客(http://zhou-yuefei.iteye.com/) Spark streaming 程序需要不断接收新数据,然后进行业务逻辑处理,而用于接受数据的就是Recever。显然Receiver的正常运行对应整个Spark Streaming应用程序至关重要,如果Receiver出现异常,后面的业务逻辑就无从...
2016-05-23 17:14:45
163
原创 9. Spark Streaming技术内幕 : Receiver在Driver的精妙实现全生命周期彻底研究和思考
9. Spark Streaming技术内幕 : Receiver在Driver的精妙实现全生命周期彻底研究和思考 原创文章,转载请注明:转载自 听风居士博客(http://blog.youkuaiyun.com/zhouzx2010) Spark streaming 程序需要不断接收新数据,然后进行业务逻辑处理,而用于接受数据的就是Recever。显然Receiver的正
2016-05-23 17:05:35
1038
7.spark Streaming 技术内幕 : 从DSteam到RDD全过程解析
7.spark Streaming 技术内幕 : 从DSteam到RDD全过程解析原创文章,转载请注明:转载自 周岳飞博客(http://zhou-yuefei.iteye.com/) 上篇博客讨论了Spark Streaming 程序动态生成Job的过程,并留下一个疑问: JobScheduler将动态生成的Job提交,然后调用了Job对象的run方法,最后run方法的调用是如何...
2016-05-20 12:34:06
227
原创 6.Spark streaming技术内幕 : Job动态生成原理与源码解析
原创文章,转载请注明:转载自 周岳飞博客(http://blog.youkuaiyun.com/zhouzx2010) Spark streaming 程序的运行过程是将DStream的操作转化成RDD的操作,Spark Streaming 和 Spark Core 的关系如下图(图片来自spark官网)Spark Streaming 会按照程序设定的时间间隔不断动态生成Jo
2016-05-17 23:42:05
1562
1
原创 6.Spark streaming技术内幕 : Job动态生成原理与源码解析
原创文章,转载请注明:转载自 周岳飞博客(http://zhou-yuefei.iteye.com/) Spark streaming 程序的运行过程是将DStream的操作转化成RDD的操作,Spark Streaming 和 Spark Core 的关系如下图(图片来自spark官网)Spark Streaming 会按照程序设定的时间间隔不断动态生成Job来处...
2016-05-17 23:37:14
125
原创 6.Spark streaming技术内幕 : Job动态生成原理与源码解析
原创文章,转载请注明:转载自 周岳飞博客(http://zhou-yuefei.iteye.com/) Spark streaming 程序的运行过程是将DStream的操作转化成RDD的操作,Spark Streaming 和 Spark Core 的关系如下图(图片来自spark官网) Spark Streaming 会按照程序设定的时间间隔不断动态生成Job来处理输...
2016-05-17 23:16:57
208
原创 5.Spark Streaming流计算框架的运行流程源码分析
1 spark streaming 程序代码实例代码如下:object OnlineTheTop3ItemForEachCategory2DB { def main(args: Array[String]){ val conf = new SparkConf() //创建SparkConf对象 //设置应用程序的名称,在程序运
2016-05-12 14:16:32
1000
5.Spark Streaming流计算框架的运行流程源码分析
1 spark streaming 程序代码实例代码如下:object OnlineTheTop3ItemForEachCategory2DB { def main(args: Array[String]){ val conf = new SparkConf() //创建SparkConf对象 //设置应用程序的名称,在程序运行的监...
2016-05-11 14:11:39
154
原创 3.spark streaming Job 架构和容错解析
一.Spark streaming Job 架构SparkStreaming框架会自动启动Job并每隔BatchDuration时间会自动触发Job的调用。Spark Streaming的Job 分为两大类:每隔BatchInterval时间片就会产生的一个个Job,这里的Job并不是Spark Core中的Job,它只是基于DStreamGraph而生成的RDD的
2016-05-08 18:44:22
939
3.spark streaming Job 架构和容错解析
一.Spark streaming Job 架构SparkStreaming框架会自动启动Job并每隔BatchDuration时间会自动触发Job的调用。Spark Streaming的Job 分为两大类:每隔BatchInterval时间片就会产生的一个个Job,这里的Job并不是Spark Core中的Job,它只是基于DStreamGraph而生成的RDD的DAG而已;...
2016-05-08 18:41:57
152
35.Spark系统运行内幕机制循环流程
一:TaskScheduler原理解密1, DAGScheduler在提交TaskSet给底层调度器的时候是面向接口TaskScheduler的,这符合面向对象中依赖抽象而不依赖的原则,带来底层资源调度器的可插拔性,导致Spark可以运行的众多的资源调度器模式上,例如Standalone、Yarn、Mesos、Local、EC2、其它自定义的资源调度器;在Standalone的模式下我们聚...
2016-05-03 10:26:56
143
25.Spark Sort-Based Shuffle内幕彻底解密
一:为什么需要Sort-Based Shuffle?1, Shuffle一般包含两个阶段任务:第一部分:产生Shuffle数据的阶段(Map阶段,额外补充,需要实现ShuffleManager中的getWriter来写数据(数据可以通过BlockManager写到Memory,Disk,Tachyon等,例如想非常快的Shuffle,此时可以考虑把数据写在内存中,但是内存不稳定,所以可...
2016-04-26 20:52:22
191
原创 25.Spark Sort-Based Shuffle内幕彻底解密
一:为什么需要Sort-BasedShuffle?1, Shuffle一般包含两个阶段任务:第一部分:产生Shuffle数据的阶段(Map阶段,额外补充,需要实现ShuffleManager中的getWriter来写数据(数据可以通过BlockManager写到Memory,Disk,Tachyon等,例如想非常快的Shuffle,此时可以考虑把数据写在内存中,但是内存不稳定,所以可以考
2016-04-26 20:45:45
844
原创 16.rdd 算子举例
由于RDD的不可修改的特性,导致RDD的操作与正常面向对象的操作不同,RDD的操作基本分为3大类:transformation,action,contoller1. TransformationTransformation是通过转化针对已有的RDD创建出新的RDDmap(func):对调用map的RDD数据集中的每个element都使用func,然后返回一个新的RDD,
2016-04-23 16:01:08
1046
16.RDD 实战
由于RDD的不可修改的特性,导致RDD的操作与正常面向对象的操作不同,RDD的操作基本分为3大类:transformation,action,contoller1. TransformationTransformation是通过转化针对已有的RDD创建出新的RDDmap(func):对调用map的RDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的...
2016-04-23 15:58:24
162
15.RDD 创建
第15课:RDD创建内幕1. RDD的创建方式Spark应用程序运行过程中,第一个RDD代表了Spark应用程序输入数据的来源,之后通过Trasformation来对RDD进行各种算子的转换,来实现具体的算法Spark中的基本方式:1) 使用程序中的集合创建这种方式的实际意义主要用于测试。2) 使用本地文件系统创建这种方式的实际意...
2016-04-23 10:55:15
209
14.RDD深度解析
开篇:spark各种库,sparksql,sparkmachicelearning,等这么多库底层都是封装的RDD。意味着1:RDD本身提供了通用的抽象,2:spark现在有5个子框架,sql,Streaming,流式处理,机器学习,图计算,sparkR。可以根据具体领域的内容建模,建第6个库,第7个库。必须掌握spark的这个通用抽象基石-RDD. 1:RDD,基于工作集的分布...
2016-04-22 20:42:17
220
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人