Smart_cxr的博客

博主很懒,什么都没留下。。。。

Spark RDD及编程接口

1.介绍 对于一个Spark程序而言,一般情况下RDD操作之间的关系图如下所示,经过输入(创建)操作,转换操作,输出操作(action操作)来完成一个作业。 2.Spark RDD RDD是弹性分布式数据集,即一个RDD代表了一个被分区的只读数据集,RDD可以通过两种方式生成,一种是来自...

2019-03-19 22:11:27

阅读数 25

评论数 0

Spark二次排序

    package cn.spark.study.core.upgrade.applog; import java.util.List; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaP...

2018-08-06 13:13:16

阅读数 96

评论数 0

Spark Streaming架构原理

2018-08-01 11:00:47

阅读数 87

评论数 0

Shuffle操作的原理与源码分析

普通的shuffle操作 第一个特点,     在Spark早期版本中,那个bucket缓存是非常非常重要的,因为需要将一个ShuffleMapTask所有的数据都写入内存缓存之后,才会刷新到磁盘。但是这就有一个问题,如果map side数据过多,那么很容易造成内存溢出。所以spark在新...

2018-07-25 16:05:13

阅读数 178

评论数 0

Task原理源码分析

在Executor类中的TaskRunner是执行Task的入口 进入updateDependencies()函数 进入Task类中的run()方法 在上面的Task的run方法中,调用了抽象方法,runTask(),那就意味着关键的操作都要依赖于子类的实现,Task的子类S...

2018-07-24 20:10:28

阅读数 92

评论数 0

Executor的原理

2018-07-24 15:28:51

阅读数 83

评论数 0

TaskScheduler原理与源码分析

接DAGScheduler源码分析stage划分算法,task最佳位置计算算法taskScheduler的submitTask()方法 在TaskScheduler类中 ①在SparkContext源码分析中,会创建TaskScheduler的时候,会创建一个SparkDeploySche...

2018-07-24 14:40:03

阅读数 164

评论数 0

DAGScheduler源码分析stage划分算法,task最佳位置计算算法

在DAGScheduler类中的HandleJobSubmitted是job调度的核心入口 进入了newStage()方法它会创建一个stage对象 进入submitStage()方法 进入getMissingParentStages方法() 进入submitWaiti...

2018-07-24 10:33:10

阅读数 235

评论数 0

Worker原理与源码剖析

在worker这个类中的LaunchDriver 一开始就创建了DriverRunner这个类 进入DriverRunner类 在创建完DriverRunner这个类后会调用start()这个方法 进入start()方法 进入createWorkingDirectory这...

2018-07-23 16:18:52

阅读数 64

评论数 0

Master资源调度算法原理剖析与源码分析

在Master类中的schedule方法是master的主要的资源调度的方法 首先是对driver进行调度 上面中的提交模式在基于YARN的两种提交模式中有介绍 进入 Random.shuffle()方法,主要的功能是随机打乱集合内的元素 进入到launchDriver(worke...

2018-07-23 11:24:23

阅读数 334

评论数 0

Master注册机制与源码剖析

Application的注册源码 进入createApplication 进入registerApplication方法   接下来是Master状态改变处理的机制源码分析(DriverStateChanged) 进入removeDriver()方法 接下来是E...

2018-07-22 20:11:58

阅读数 48

评论数 0

Master主备切换原理和源码剖析

completeRecovery()方法,主要就是完成Master的恢复 将Application和Worker,过滤出来目前状态还是UNKNOWN 然后遍历,分别调用removeWorker和finishApplication方法,对可能已经出故障,或者已经死掉的Application...

2018-07-22 16:00:22

阅读数 98

评论数 0

SparkContext源码分析

SparkContext初始化的时候会创建taskScheduler 进入createTaskScheduler方法 有spark-submit的三种提交模式: 这是我们常用的standdlone提交模式,在这种模式下会创建一个TaskSchedulerImpl,也会...

2018-07-22 13:35:55

阅读数 77

评论数 0

基于YARN的两种提交模式

yarn-cluster提交模式: 1,spark-submit提交,发送请求到ResourceManager请求启动ApplicationMaster; 2,ResourceManager分配container在某个nodemanager上,启动ApplicationMaster(相当于...

2018-07-22 09:10:24

阅读数 169

评论数 0

宽依赖和窄依赖

窄依赖:一个RDD,对它的父RDD,只有简单的一对一的依赖关系。也就是说,每个RDD的partition,仅仅依赖于父RDD中的一个partition。父RDD和子RDD的partition之间的关系是一对一的。 宽依赖:本质就是Shuffle,就是每一个父RDD的partition中的数据...

2018-07-22 08:54:42

阅读数 116

评论数 0

Spark内核架构深度剖析

1,通过spark-submit提交编写好的Spark程序,这时候spark会通过反射的方式,创建和构造一个DriverActor进程出来。 2,Driver进程会执行我们的Application应用程序,在代码中SparkContext在初始化的时候会构造出来DAGScheduler和Ta...

2018-07-21 20:16:12

阅读数 139

评论数 0

Spark架构原理

  1,编写的Spark程序在Driver上由Driver进程执行,Driver进程启动后,就会做一些初始化操作,在这个操作过程中就会发送请求到Master上,进行Spark应用程序的注册,就是让master知道有一个新的spark应用程序要运行。 2,Master接收到Driver的注册...

2018-07-21 16:48:21

阅读数 122

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭