spark
文章平均质量分 67
gaoshui87
这个作者很懒,什么都没留下…
展开
-
spark 业务执行进程
spark 业务执行进程spark的task的业务执行进程的入口类为 CoarseGrainedExecutorBackend通过接收相关的参数调用如下的入口,然后进行创建相关的类原创 2017-09-30 11:43:40 · 523 阅读 · 0 评论 -
spark RDD action job的提交过程之 taskSchedule
spark RDD action job的提交过程之 taskSchedule在TaskSchedulerImpl中,有接收task 任务的接口 override def submitTasks(taskSet: TaskSet) {// 提交dag task 任务了val tasks = taskSet.taskslogInfo("Adding task set " + taskSet原创 2017-10-13 11:26:30 · 456 阅读 · 0 评论 -
spark RDD action job的提交过程
spark RDD action job的提交过程以RDD的 count()方法的例子为例,来演示 dag生成提交的过程。def count(): Long = sc.runJob(this, Utils.getIteratorSize _).sum上面直接调用到 runJob的方法 def runJob[T, U: ClassTag]( rdd: RDD[T], func: (Tas原创 2017-10-12 20:05:45 · 459 阅读 · 0 评论 -
spark join shuffle 数据文件的读取
spark join shuffle 数据文件的读取我们看下在shuffle过程中数据文件的读取过程中调用的类对象// 下面就是对这个shuffler中的分片数据进行读取并进行相关的aggregate操作了val blockFetcherItr = new ShuffleBlockFetcherIterator( context, blockManager.shuffleClient,原创 2017-10-19 16:53:32 · 579 阅读 · 0 评论 -
spark work ResultTask 源码分析
spark work task 源码分析rdd在各个 CoarseGrainedExecutorBackend 进程中,经典的业务执行过程private[spark] class ResultTask[T, U](stageId: Int,stageAttemptId: Int,taskBinary: Broadcast[Array[Byte]],partition: Partition,原创 2017-10-10 10:53:45 · 317 阅读 · 0 评论 -
spark join shuffle 数据读取的过程
spark join shuffle 数据读取的过程在spark中,当数据要shuffle时,这个拉取过程RDD是怎么和ShuffleMapTask 关联起来的。 在CoGroupedRDD通过调用如下函数去读取指定分区的数据 SparkEnv.get.shuffleManager .getReader(shuffleDependency.shuffleHandle, split.in原创 2017-10-18 18:22:06 · 1515 阅读 · 0 评论 -
spark RDD join的核心过程
spark RDD join的核心过程spark join的过程是查询过程中最核心的过程,怎么做到实现两个表的关联查询耗费资源最少。可看源码如下 join的实现在 PairRDDFunctions类当中。def join[W](other: RDD[(K, W)], partitioner: Partitioner): RDD[(K, (V, W))] = self.withScope {thi原创 2017-10-18 14:52:18 · 2431 阅读 · 0 评论 -
spark work task 源码分析
spark work task 源码分析spark 的task 主要以ShuffleMapTask为主,这个类就是在 任务的driver中进行生成然后序列化传输到 work 的CoarseGrainedExecutorBackend进程中进行执行。原创 2017-09-30 19:20:56 · 316 阅读 · 0 评论 -
spark task 任务状态管理
spark task 任务状态管理spark task 的任务状态经常进行更新,当任务完成后,这个任务是怎么取得结果的呢,看下面的代码流程def statusUpdate(tid: Long, state: TaskState, serializedData: ByteBuffer) {var failedExecutor: Option[String] = None// 进行状态的更新 了s原创 2017-10-16 19:59:25 · 3702 阅读 · 0 评论