SparkContext源码分析

Spark源码系列(二):SparkContext源码分析 1、功能描述 本篇文章就要根据源码分析SparkContext所做的一些事情,用过Spark的开发者都知道SparkContext是编写Spark程序用到的第一个类(新版本里是SparkSession,但其内部还是调用SparkContext),足以说明SparkContext的重要性;这里先摘抄SparkContext源码注释来简单介绍介绍SparkContext,注释的第一句话就是说SparkContext为Spark的主要入口点,简明扼要,如把Spark集群当作服务端那Spark Driver就是. 阅读详情

SparkContext源码分析

粗略的说明一下SparkContext源码!
createTaskScheduler()针对不同的提交模式,执行不同的方法(local,standalone、yanr等)

standalone模式===》》创建一个TaskSchedulerImpl

1、       底层通过操作SchedulerBackend,针对不同种类的cluster(standalone、yarn。mesoso(亚马逊))调度task

2、       他也可以通过一个LoaclBackend,并且将isLocal设置为true,来在本地模式下工作

3、       他负责处理一下通用的逻辑,比如说决定多个job的调度顺序(FIFO),启动推测任务执行

4、       客户端首先应该调用它的initialize()方法和start()方法,然后通过runTasks()方法提交tasksets

创建SparkDeploySchedulerBackend()

initializer方法中创建一个Pool调度池,FIFO、FAIR

taskScher。start()方法=====》调用了一下SparkDeploySchedulerBackend的start方法

此时:val AppDesc = newApplicationDescription(sc.appName、maxCores,sc.executorMemory,command,appUIaddress)

创建一个ApplicationDescription,非常重要!它代表了当前执行的Application的一下情况,包括Application最大需要多少CPU core  每个slave上需要多大内存。

创建APPclient(Application与spark之间通信)

一个借口。

它负责接收一个spark master的url,以及一个ApplicationDescription,和一个集群事件的监听器,以及各种事件发生时,监听器的回调函数!

start()方法,创建一个clientActor

调用registerWithMaster()里面调用tryRegisterAllMasters(),里面去连接所有的master。

DAGScheduler:实现了面向stage的调度机制的高层次的调度层,他会为每一个job计算一个stage的DAG(有向无环图),追踪RDD和stage的输出是否被物化(写入磁盘或者内存等地方),并且寻找一个最少消耗(最优、最小)调度机制来运行job,他会将stage作为tasksets提交到底层的TaskScheduler上,来在集群上运行他们(task)。

除了处理stage的DAG,还负责决定运行每个task的最佳位置,基于当前的缓存状态,将这些最佳位置提交给底层的TaskSchedulerImpl,此外,他会处理由于shuffle输出文件丢失导致的失败,在这种情况下,旧的stage可能会被重新提交,一个stage内部的失败,如果不是由于shuffle文件丢失导致的,会被TaskScheduler处理,他会多次重复每一个task,知道最后实在不行,才会去取消整个stage。

SparkUI:jetty工具类。


SparkJavaJson:使用Spark进行JSON解析 SparkJava的杰森 在执行以下命令之前,请在sparkjob.conf文件中更改spark.driver.extraClassPath属性。 ./bin/spark-submit --class org.sparketl.etljobs.SparkEtl --properties-file sparkjob.conf /sparketl/target/sparketl-0.0.1-SNAPSHOT.jar {spark master url} {使用存在的city_list.json在此项目中} {输出文件(用于配对RDD){单个RDD的输出文件}} {国家(地区):美国} 对于Spark初学者,请转到 立即下载

相关推荐

spark-json-schema:适用于Apache Spark的JSON模式解析器

spark-json-schema 该库的目标是在将json数据加载到Apache Spark中时支持输入数据的完整性。 为此,该库: 读取现有的json模式文件 解析json模式并构建一个Spark DataFrame模式 将json数据加载到Spark中时,可以使用生成的架构。 这验证输入数据符合给定的架构,并能够过滤出损坏的输入数据。 快速开始 将库包含在以下坐标下: libraryDependencies + = " org.zalando " %% " spark-json-schema " % " 0.6.1 " 通过提供输入文件的路径来解析给定的json模式文件。 该文件应相对于resources文件夹: val schema = SchemaConverter .convert( " schemaFile.json " ) 或者,您可以将convertCont

spark操作json数据

一、转换到JSON格式2. spark-sql转json串1. 把某些列封装到json串2. 把所有列封装到json串二、 特殊字符1. key中含有特殊字符三、数组操作四、 spark读取json文件1. dataframe指定schema读取。

盛源的博客 1万+

ROS2进程内通信:零拷贝Intra-Process原理与实战

Intra-Process通信是ROS2实现低延迟节点间数据交换的核心机制,其本质是通过C++17智能指针与零拷贝共享内存,在同一进程内绕过序列化、系统调用和上下文切换。相比传统DDS跨进程通信,它将`geometry_msgs::Twist`类消息延迟从42μs降至0.8μs,显著提升机器人实时控制性能。该技术并非自动启用,需满足同执行器、QoS严格匹配、内存所有权明确三大约束,适用于机械臂控制、视觉SLAM、图像处理流水线等对端到端延迟敏感的场景。本文聚焦ROS2原生Intra-Process通讯的原理

weixin_30619101的博客 365

Spark2.2源码剖析——SparkContext初始化及Spark环境创建

  阅读指导:在《Spark2.2——SparkContext概述》一文中,曾经简单介绍了SparkEnv。本节内容将详细介绍SparkEnv的创建过程。   在Spark中,凡是需要执行任务的地方就需要SparkEnv。在生产环境中,SparkEnv往往运行于不同节点的Executor中。但是由于local模式在本地执行的需要,因此在Driver本地的Executor也需要SparkEnv。Sp...

Jorocco的博客 726

Ubuntu 22.04蓝牙开关秒关?别慌,可能是这个Intel固件文件在搞鬼

本文深入解析Ubuntu 22.04蓝牙开关秒关问题,指出Intel固件文件缺失是常见原因,并提供详细修复方案。通过确认硬件型号、检查固件文件及智能替代方案,帮助用户快速解决蓝牙故障,提升系统稳定性。

weixin_30247307的博客 758

QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析

本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。

g9h0i1的博客 1008

spark sqlcontext 读取json 文件

多行json 直接 使用 sqlcontext.read().json("path") 读取时候 报错如下 : Exception in thread "main" org.apache.spark.sql.AnalysisException: Since Spark 2.3, the queries from raw JSON/CSV files are disallowed when ...

H.king的博客 3076

GNSS接收机性能测试全攻略:从实验室到真实场景

本文系统介绍了GNSS接收机从实验室到真实场景的完整性能测试流程。首先通过GNSS模拟器进行射频传导测试,评估接收机的基础性能;其次进行天线OTA测试,考察整机系统表现;最后通过精心设计的外场路测,在复杂环境中验证其实际定位精度与可靠性。文章强调,只有结合可控的实验室验证与多变的外场挑战,才能对接收机性能做出全面、真实的评价。

weixin_28365523的博客 519

SparkContext 源码分析

SparkContext 源码分析 更多资源 SPARK 源码分析技术分享(bilibilid视频汇总套装视频): https://www.bilibili.com/video/av37442139/ github: https://github.com/opensourceteams/sp...

chongqueluo2709的博客 112

2023年12月青少年C/C++软件编程(三级)等级考试试卷及答案解析

有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。输出为一行,表达式的值。任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。

长春高老师编程 1513

【SpringBoot 3.x 第92节】Spring Modulith:构建模块化单体架构(基于 Spring Boot 3),一文带你搞透(超详细)!

🏆本文收录于《滚雪球学SpringBoot 3.x》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    该专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。

**My Coding Family** 1002

Spark学习笔记(3)--SparkContext部分源码分析

SparkContext源码分析 在任何Spark程序中,必须要创建一个SparkContext,在SparkContext中,最主要的就是创建了TaskScheduler和DAGScheduler,以及SparkUI ... // Create and start the scheduler val (sched, ts) = SparkContext.createTaskScheduler(t...

weixin_30393907的博客 136

学Simulink——基于Simulink的Buck-Boost变换器双闭环PI+抗饱和设计建模示例

本文详细介绍了基于Simulink的非反相Buck-Boost变换器双闭环控制设计方法。针对Buck-Boost变换器特有的右半平面零点(RHPZ)和控制挑战,提出了电压-电流双闭环PI控制架构,并集成抗积分饱和机制。通过Simulink建模,实现了主电路、电流内环PI、电压外环PI、PWM及占空比限幅等模块的搭建,验证了在输入电压跌落(20V→10V)和负载突变(2A→4A)等场景下的稳定性能。仿真结果表明,输出电压波动小于0.35V,恢复时间快于1ms,电感电流有效限幅。文章还讨论了工程实践要点和扩展方

xiaoheshang_123的博客 318

SparkContext原理分析与源码分析

①SparkContext的运行原理

u013174239的博客 689

第4章--CANoe library开发 - 诊断功能

因为专栏要做的是汽车ECU自动化测试程序,测试的是ECU的诊断和刷新,因此就需要利用CANoe的接口,开发一些方便使用的诊断报文收发函数。

j187067046的博客 1401

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

spark源码分析五(SparkContext一TaskSchedulerImpl))

SparkContext 源码版本2.4.7 首先我们要知道当RDD真正遇到action算子时,任务才会被触发. /** * Applies a function f to all elements of this RDD. */ def foreach(f: T => Unit): Unit = withScope { val cleanF = sc.clean(f) sc.runJob(this, (iter: Iterator[T]) => iter.f

long的博客 438

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

1.SparkContext源码分析

先来章整个SparkContext的架构图: 1.通过SparkContext的createTaskScheduler获取TaskSchedulerImpl和SparkDeploySchedulerBackend private[spark] var (schedulerBackend, taskScheduler) = SparkContext.createTas

AlanHand的专栏 614

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spark源码分析之SparkContext

SparkContext是用户和Spark集群交互的唯一入口,它的主要是有两个: # 可以用来创建RDD,累加器和广播变量 # 初始化应用程序所需要的核心组件,为应用程序准备运行环境   只可以有一个SparkContext实例运行在一个JVM中,所以在创建SparkContext的时候之前,确保之前的SparkContext已经关闭了,即调用stop方法停止当前JVM中唯一运行的Sp

happy19870612's blog 924

Spark源码分析 – SparkContext

Spark源码分析之-scheduler模块 这位写的非常好, 让我对Spark的源码分析, 变的轻松了许多 这里自己再梳理一遍 先看一个简单的spark操作, val sc = new SparkContext(……)val textFile = sc.textFile("README.md") textFile.filter(line => line.cont...

weixin_30633405的博客 69

Spark2.4.0 SparkContext 源码分析

Spark2.4.0 SparkContext 源码分析 更多资源 github: https://github.com/opensourceteams/spark-scala-maven-2.4.0 时序图 前置条件 Hadoop版本: hadoop-2.9.2 Spark版本: s...

chongqueluo2709的博客 254

spak源码分析之sparkContext源码分析

sparkContext源码分析 1.sparkcontext是spark应用开发的入口,负责与spark集群的连接。可用于在集群上创建RDD,累加器,和 广播变量等一系列操作。 2.sparkcontext初始化主要做了以下几件事: 初始化spakEn 初始化taskScheduler 初始化dagscheduler 初始化sparkUI 3.sparkEnv相关代码 调用spark

mr_liM的博客 529
上一篇: Spark之Master主备切换机制原理
下一篇: SparkSQL 内置函数的使用(JAVA与Scala版本)
JSON_ZJS
博客等级 码龄9年 30粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值