`
distantlight1
  • 浏览: 44349 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spark源码梳理(0)-说明

阅读更多

本系列文章为对Spark主要逻辑源码学习整理。主要参考《Spark技术内幕》一书(简称《内幕》)。《内幕》主要以源码模块为主线进行横向解析。本文则致力于由“事件”触发的纵向逻辑为主线,例如Action算子、Transform算子、集群启动等,这个角度基本Spark运行时的调用栈。各主线直接没有必然的先后联系

 

如无特别说明,本文基于Spark 2.10版本源码,并且仅讨论Standalone部署模式

 

文章内黄底部分表示重要调用栈逻辑,绿底部分表示比较重要但属其他模块逻辑,当前文章不做展开

除源码外,主要内容在注释中说明。包括对源码注释的翻译以及个人说明

 

例如

// cleanedFunc是一个闭包的函数,用到asm来解析class。大致是去掉对闭包无影响的父类、子类、transient属性等,确认闭包可序列化。后续文章再深入分析这个方法。最终getIteratorSize函数传到runJob里

def runJob[T, U: ClassTag]( rdd: RDD[T], func: Iterator[T] => U, partitions: Seq[Int]): Array[U] = {

  val cleanedFunc = clean(func)

  runJob(rdd, (ctx: TaskContext, it: Iterator[T]) => cleanedFunc(it), partitions)

}

分享到:
评论

相关推荐

    Hive on Spark源码分析DOC

    Hive on Spark源码分析 Hive on Spark 源码分析是指将 Hive 默认的执行引擎 MapReduce 换成 Spark 或者 Tez,以满足实际场景中的需求。本文将对 Hive on Spark 的源码进行深入分析,涵盖其基本原理、运行模式、Hive...

    【spark2.4.4源码编译】windows环境编译spark2.4.4

    以上相关组件的版本是根据spark2.4.4源码的pom文件里的组件版本进行梳理的: 1.8 3.5.4 2.11.12 根据这组配置,本人已经成功编译数遍。 环境安装 1、Git Bash 首先说明,为什么要装Git Bash这个东西,这个主要是...

    java预订系统源码-big-data:一个开源、成体系的大数据学习教程。spark学习hadoophivehbaseflink教程linux

    java预订系统源码 第1章 卜算子·大数据简介 “卜算子·大数据”,是一个开源、成体系的大数据学习教程。从基础数据采集到顶层架构设计。最新梳理出大数据知识体系共计12个部分,42个章节。 :star: 工程项目源码 本...

    JAVA核心面试知识梳理大全.pdf

    本资料“JAVA核心面试知识梳理大全”涵盖了广泛的Java相关技术,包括基础、并发编程、源码分析、微服务、分布式系统、数据库操作、算法以及设计模式等多个方面。 首先,让我们深入了解一下JVM(Java虚拟机),它是...

    梳理的一些java开发中用上的框架和开发工具,肯定会遗漏,欢迎补充

    RabbitMQ 是一款开源的消息代理和队列服务器,实现了AMQP 0-9-1标准。 #### 负载均衡 - **LVS**: 框架。LVS (Linux Virtual Server) 是一个基于Linux内核的负载均衡系统。 - **NGINX**: 框架。NGINX 是一款高性能的...

    zziyy-ShiPinJieXiWangZhanYuanMa-master.zip_xmind web开发_xmind工具_z

    至于"ShiPinJieXiWangZhanYuanMa",这个名字可能是某个项目或者课程的名称,它可能包含了一系列与Web开发相关的源码、教程或其他资料。这些资源可以帮助开发者深入理解Web开发的各个环节,包括前端技术、后端架构、...

    区域卫生信息平台架构

    - **业务流程优化**:通过对现有业务流程的梳理与优化,提升医疗服务效率和服务质量。 - **技术创新应用**:积极引入云计算、大数据、物联网等先进技术,为平台提供强有力的技术支撑。 ##### 2. 架构组成 根据给定...

    资本市场的最佳投资组合.pdf

    通过以上知识点的梳理,我们可以看出,《资本市场的最佳投资组合》不仅关注了金融领域的核心概念和技术细节,还涉及到了广泛的IT技术和项目实践,为读者提供了全面深入的理解和实用指导。无论是对于想要深入了解资本...

    openfire二次开发资料整理

    ### Openfire二次开发资料知识点梳理 #### 一、XMPP协议概述 - **XMPP**(Extensible Messaging and Presence Protocol)是一种基于XML的即时通信协议。该协议的主要特点是使用XML作为消息格式,使得消息能够携带...

    尚硅谷大数据之Scala语言核心编程.pdf

    书中的知识点还包括了Scala语言的转义字符、输出的三种方式( println, print, printf),以及如何查看Scala源码、Scala中的注释规则、正确的缩进和空白规则、代码规范说明等。在变量章节中,详细介绍了变量的基本...

    [Hadoop]以前整理的一份Hadoop学习指南

    6. **源码分析**:对于进阶学习者,可能涉及到Hadoop源代码的阅读和分析,帮助理解其内部实现细节,提升问题排查和定制化开发的能力。 7. **实战应用**:通过实际案例,演示如何在生产环境中部署和管理Hadoop集群,...

    企业元数据管理方案设计.docx

    这些挑战包括如何梳理数据的时间线变化、如何高效地检索和复用数据、如何实施数据权限控制和任务治理等。元数据管理成为了解决这些问题的关键。 元数据是数据管理的核心,它记录了数据从产生到消费的全过程,包括...

Global site tag (gtag.js) - Google Analytics