spark
我不是李寻欢
百转千折落人间,身披绶带赛玉泉;
婀娜生姿门前客,飞驰化做林中仙.
展开
-
spark简介
Apache Spark™ is a fast and general engine for large-scale data processing.------------------------------------------------------------------------简介: spark是一个分布式并行数据处理框架,可以与Hadoop联合使用,增强Hadoop的原创 2017-09-06 18:11:51 · 263 阅读 · 0 评论 -
CacheManager原理剖析与源码分析
首先 RDD 是通过 iterator 来进行计算:CacheManager 会通过 BlockManager 从 Local 或者 Remote 获取数据直接通过 RDD 的 compute 进行计算,有可能需要考虑 checkpoint; 通过 BlockManager 首先从本地获取数据,如果获得不到数据的话会从远程获取数据 首先检查看当前的 RDD 是否进行了 CheckPoint ,如原创 2017-10-21 21:51:49 · 635 阅读 · 0 评论 -
BlockManager原理剖析与源码分析
BlockManager 会运行在 driver 和 Executor 上面,在 driver 上面的 BlockManager 是负责管理整个集群所有 Executor 中的 BlockManager,BlockManager 本身也是 Master-Slave 结构的,所谓Master-Slave 结构就是一切的调度和工作都是由 Master 去触发的,Slave本身就是专注于干活的,而原创 2017-10-21 21:55:55 · 527 阅读 · 0 评论 -
Checkpoint原理剖析
Checkpoint是什么?Checkpoint,是Spark提供的一个比较高级的功能。有的时候啊,比如说,我们的Spark应用程序,特别的复杂,然后呢,从初始的RDD开始,到最后整个应用程序完成,有非常多的步骤,比如超过20个transformation操作。而且呢,整个应用运行的时间也特别长,比如通常要运行1~5个小时。在上述情况下,就比较适合使用checkpoint功能。因为,对于特别复杂的S原创 2017-10-21 21:58:24 · 2009 阅读 · 0 评论 -
Master原理剖析与源码分析:资源调度机制源码分析(schedule(),两种资源调度算法)
1、主备切换机制原理剖析与源码分析 2、注册机制原理剖析与源码分析 3、状态改变处理机制源码分析4、资源调度机制源码分析(schedule(),两种资源调度算法)*Driver的调度机制*//Master中的schedule()方法。 private def schedule(): Unit = { //standby的Master是不会被调用的 if (state != R原创 2017-10-13 21:52:24 · 335 阅读 · 0 评论 -
Master原理剖析与源码分析:注册机制原理剖析与源码分析
1、主备切换机制原理剖析与源码分析 2、注册机制原理剖析与源码分析 3、状态改变处理机制源码分析 4、资源调度机制源码分析(schedule(),两种资源调度算法)原创 2017-10-13 19:20:30 · 347 阅读 · 0 评论 -
Spark内核源码深度剖析:sparkContext初始化的源码核心
TaskSchedulerImplsparkContext中的创建createTaskScheduler(2000多行) private def createTaskScheduler( sc: SparkContext, master: String): (SchedulerBackend, TaskScheduler) = { import SparkMast原创 2017-10-13 15:00:53 · 331 阅读 · 0 评论 -
Master原理剖析与源码分析:Master状态改变处理机制原理剖析与源码分析
1、主备切换机制原理剖析与源码分析 2、注册机制原理剖析与源码分析3、状态改变处理机制源码分析4、资源调度机制源码分析(schedule(),两种资源调度算法)// Master中Driver状态改变的的信息 private def removeDriver( driverId: String, finalState: DriverState, except原创 2017-10-13 20:28:05 · 395 阅读 · 0 评论 -
Master原理剖析与源码分析:主备切换机制原理剖析与源码分析
1、主备切换机制原理剖析与源码分析 2、注册机制原理剖析与源码分析 3、状态改变处理机制源码分析 4、资源调度机制源码分析(schedule(),两种资源调度算法)原创 2017-10-13 19:17:23 · 302 阅读 · 0 评论 -
Worker原理剖析与源码分析
Master会让worker启动一个Driver Runnner线程,启动Driver线程(launchDriver)。Master让Worker启动一个ExecutorRunner,去启动Executor进程并向Driver反向注册(launchExecutor)。case LaunchDriver(driverId, driverDesc) => { logInfo(s"Aske原创 2017-10-14 10:50:56 · 345 阅读 · 0 评论 -
job触发流程原理剖析与源码分析
以wordcount流程解析val lines = sc.textFile() def textFile( path: String, minPartitions: Int = defaultMinPartitions): RDD[String] = withScope { assertNotStopped() //hadoopFile()方法的调用,拿原创 2017-10-14 11:35:53 · 379 阅读 · 0 评论 -
DAGScheduler原理剖析与源码分析
stage划分算法:必须对stage划分算法很清晰,知道自己的Application被划分了几个job,每个job被划分了几个stage,每个stage有哪些代码,只能在线上报错的信息上更快的发现问题或者性能调优。 //DAGscheduler的job调度的核心入口 private[scheduler] def handleJobSubmitted(jobId: Int, fina原创 2017-10-14 16:22:12 · 533 阅读 · 0 评论 -
Spark内核源码深度剖析:SparkContext原理剖析与源码分析
1、TaskScheduler 2、DAGScheduler 3、SparkUI原创 2017-10-12 14:43:13 · 269 阅读 · 0 评论 -
Spark内核源码深度剖析:基于Yarn的两种提交模式深度剖析
Spark的三种提交模式1、Spark内核架构,其实就是第一种模式,standalone模式,基于Spark自己的Master-Worker集群。2、第二种,是基于YARN的yarn-cluster模式。3、第三种,是基于YARN的yarn-client模式。4、如果,你要切换到第二种和第三种模式,很简单,将我们之前用于提交spark应用程序的spark-submit脚本,加上--master原创 2017-10-12 14:01:29 · 260 阅读 · 0 评论 -
Spark内核源码深度剖析:宽依赖与窄依赖深度剖析
宽依赖与窄依赖深度剖析原创 2017-10-12 13:43:35 · 308 阅读 · 0 评论 -
spark standalone 集群配置
Spark Standalone是集群,是Spark自身所带的集群资源管理系统,进行任务调度 与YARN很类似,同样是主/从的分布式架构 主节点: Master(相当于ResourceManager)从节点: Worker(相当于NodeManager)park-env.sh主节点配置SPARK_MASTER_IP=blue01.mydomainSPARK_MASTER_POR原创 2017-09-06 18:40:01 · 312 阅读 · 0 评论 -
spark中RDD的基本操作方式
spark中RDD的基本操作方式读取本地文件val rdd = sc.textFile("file:///home/tom/a.txt")rdd.collect val rdd1=rdd.map(s=>Integer.parseInt(s)+1)rdd1.collectrdd1.saveAsTextFile("file:///home/tom/result")读取HDFS文件val原创 2017-09-06 18:22:44 · 2058 阅读 · 0 评论 -
spark核心编程原理
spark核心编程原理首先定义初始的RDD,第一个RDD确定是从哪里读取数据,hdfs/local/还是程序中的集合定义RDD的计算操作,通过spark中的算子,map/flapmap/filter/groupBykey。这比map和reduce 的功能强大而又简洁。第三就是循环往复的过程,当第一个算子算完了以后,数据可能就会到了新的一批节点上,变成一个新的RDD,然后再次重复。针对所有的RD原创 2017-09-06 20:11:42 · 1031 阅读 · 0 评论 -
spark Job执行流程
spark Job执行流程从hdfs/local/集合中读取数据,放到worker的内存中。然后,work节点中的exector的task,再针对hdfs对应的linesRDD,依此进行我们的flatmap/map/reduceByKey等操作。原创 2017-09-07 09:09:43 · 380 阅读 · 0 评论 -
spark中 transformation和action介绍
spark中 transformation和action介绍Spark支持两种RDD操作:transformation和action。transformation操作会针对已有的RDD创建一个新的RDD;而action则主要是对RDD进行最后的操作,比如遍历、reduce、保存到文件等,并可以返回结果给Driver程序。例如,map就是一种transformation操作,它用于将已有RDD的每原创 2017-09-06 19:26:11 · 681 阅读 · 0 评论 -
spark 中RDD的持久化原理
spark 中RDD的持久化原理Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内存中,并且在之后对该RDD的反复使用中,直接使用内存缓存的partition。这样的话,对于针对一个RDD反复执行多个操作的场景,就只要对RDD计算一次即可,后面直接使用该RDD,而不需要反复计算多次该RDD。巧妙原创 2017-09-08 09:33:44 · 1015 阅读 · 0 评论 -
spark中的共享变量
Spark一个非常重要的特性就是共享变量。默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。Spark为此提供了两种共享变量,一种是Broadcast Variable(广播变量),另一种是Accumulator(累加变量)。Broadcast Va原创 2017-09-08 09:46:35 · 592 阅读 · 0 评论 -
Task原理剖析
ShuffleMapTask和ResultTask的RunTask方法,然后compute。原创 2017-10-19 10:48:21 · 369 阅读 · 0 评论 -
Shuffle原理剖析与源码分析
普通Spark Shuffle操作第一个特点: 在Spark早期版本中,那个bucket缓存是非常非常重要的,因为需要将一个ShuffleMapTask所有的数据都写入内存缓存之后,才会刷新到磁盘。但是这就有一个问题,如果map side数据过多,那么很容易造成内存溢出。所以spark在新版本中,优化了,默认那个内存缓存是100kb,然后呢,写入一点数据达到了刷新到磁盘的阈值之后,就会将原创 2017-10-19 11:56:47 · 317 阅读 · 0 评论 -
thransformation操作
thransformation操作1、map:将集合中每个元素乘以2 2、filter:过滤出集合中的偶数 3、flatMap:将行拆分为单词 4、groupByKey:将每个班级的成绩进行分组 5、reduceByKey:统计每个班级的总分 6、sortByKey:将学生分数进行排序 7、join:打印每个学生的成绩 //使用join算子关联两个RDD,jion之后还是会根据key进原创 2017-10-12 11:19:29 · 284 阅读 · 0 评论 -
Spark内核架构
1、Application 2、spark-submit 3、Driver 4、SparkContext 5、Master 6、Worker 7、Executor 8、Job 9、DAGScheduler 10、TaskScheduler 11、ShuffleMapTask and ResultTask原创 2017-10-12 11:46:58 · 215 阅读 · 0 评论 -
TaskScheduler原理剖析与源码分析
def resourceOffers(offers: Seq[WorkerOffer]): Seq[Seq[TaskDescription]] = synchronized { var newExecAvail = false for (o <- offers) { executorIdToHost(o.executorId) = o.host executo原创 2017-10-16 15:54:32 · 759 阅读 · 0 评论