Spark 依赖包加载方式

news2024/9/22 17:18:45

1 Spark 依赖包来源

我们知道Spark application运行加载依赖有三个地方:

  • systemClasspath:Spark安装时候提供的依赖包,${SPARK_HOME}/jars下的包。
  • spark-submit --jars 提交的依赖包
  • spark-submit --config "spark.{driver/executor}.extraClassPath=someJar"提交的依赖包Spark 依赖包

2 --jars

提供系统中没有的包,运行时将包分发到worker指定目录例如/var/run/spark/work,不会加载到executor的classPath,多个包用逗号分隔
在提交任务的时候指定–jars,用逗号分开。这样做的缺点是每次都要指定jar包,如果jar包少的话可以这么做,但是如果多的话会很麻烦。

spark-submit --master yarn-client --jars ***.jar,***.jar mysparksubmit.jar

3 spark.{driver|executor}.extraClassPath

提交时在spark-default中设定参数,将所有需要的jar包考到一个文件里,然后在参数中指定该目录就可以了,较上一个方便很多:

spark.executor.extraClassPath=/home/hadoop/wzq_workspace/lib/*

需要在所有可能运行spark任务的机器上保证该目录存在,并且将jar包考到所有机器上。

4 spark.yarn.jars

使用yarn的方式提交spark应用时,在没有配置spark.yarn.archive或者spark.yarn.jars时, 看到输出的日志在输出Neither spark.yarn.jars nor spark.yarn.archive is set;一段指令后,会看到不停地上传本地jar到HDFS上,内容如下,这个过程会非常耗时。可以通过在spark-defaults.conf配置里添加spark.yarn.archive或spark.yarn.jars来缩小spark应用的启动时间。

24/01/23 13:55:09 WARN Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.

5 加载顺序

  1. spark-submit --config "spark.{driver/executor}.extraClassPath=someJar"提交的依赖包
  2. SystemClasspath – Spark安装时候提供的依赖包
  3. spark-submit --jars 提交的依赖包

6 用途

三者用途:

  • spark.{driver/executor}.extraClassPath 优先级最高,一般有相同jar但是版本不同,需要解决冲突时使用;
  • systemClasspath 系统安装的包,默认优先使用环境的包,这样更加稳定安全。可以配置 spark.yarn.jar参数,缩小spark应用启动时间。
  • spark-submit --jars 在默认spark环境里没有需要的包时,自己上传提供。

7 总结

  • 在我们提交一个spark 程序时,系统没有的包–jars 提交;
  • 在我们需要和系统中已有的包的不同版本时或者第三方jar包比较多时,使用spark.{driver/executor}.extraClassPath来指定。
  • 配置spark.yarn.jars缩小spark应用启动时间。

欢迎关注微信公众号:大数据AI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1431109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何恢复删除的文件?五个步骤搞定文件恢复

在数字洪流汇聚的今日,我们的信息大多以电子的形态保存。这些电子文件,无论是职场上的重要文书,还是个人生活中的照片与视频,一旦消失,就可能带来无法弥补的遗憾。所幸的是,随着科技的马不停蹄,…

vue3学习——自定义插件,注册组件(引入vue文件报红线)

在src/components文件夹目录下创建一个index.ts文件 import { App, Component } from Vue import SvgIcon from /components/SvgIcon/index.vue import Pagination from /components/Pagination/index.vue const globalComponents: { [name: string]: Component } { SvgIcon,…

Stable Code 3B:轻量级编程助手,无GPU本地运行

引言 Stability AI近期发布了Stable Code 3B,这是一个集中了多项创新技术的轻量级编程辅助模型。它在保持轻量的同时,展现出了与大型模型如CodeLLaMA 7B相媲美的性能,这一特性使其在没有GPU的环境中也能运行,极大地拓宽了其应用范…

面试经典150题——验证回文串

​"Challenges are what make life interesting and overcoming them is what makes life meaningful." - Joshua J. Marine 1. 题目描述 2. 题目分析与解析 在解决这个问题之前我们先想一下普通的回文串是如何判断的。 方法1:通过将字符串反转&#xff…

UnityShader(十四)纹理

目录 前言: 单张纹理实现效果: 效果: 前言: 纹理最初的目的是用一张图片来控制模型的外观。使用纹理映射技术我们可以把一张图“贴”在模型表面,逐纹素(文素的名字是为了和像素进行区分)控制…

2024 Google Chrome 浏览器回退安装旧版本

2024 Google Chrome 浏览器回退安装旧版本 查看当前谷歌版本备份浏览器数据卸载浏览器双击重新安装旧版本浏览器 查看当前谷歌版本 详细参考:参考 笔记:最近谷歌浏览器更新后,用着总感觉别扭:不习惯 备份浏览器数据 &#xff…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItem组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItem组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、MenuItem组件 TextClock组件通过文本将当前系统时间显示在设备上。支持不同时…

假期2.3

第二章 引用内联重载 一.选择题-* 1、适宜采用inline定义函数情况是(C) A. 函数体含有循环语句 B. 函数体含有递归语句‘、考科一 ’ C. 函数代码少、频繁调用 D. 函数代码多、不常调用 2、假定一个函数为A(int i4, int j0) {;}, 则执行“A …

09. BI - 数据可视化,如何进行基本图形绘制

本文为 「茶桁的 AI 秘籍 - BI 篇 第 09 篇」 文章目录 EDA 作用可视化视图Python 进行可视化subplot Hi,你好。我是茶桁。 今天想给大家讲的是关于数据的可视化。在工作中很多时候我们不光要计算结果,还要把结果呈现出来,最好是一种图形化的…

MATLAB知识点:矩阵的加法

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.2 算术运算 首先是矩阵的加法。在线性代数中…

软考19-上午题-栈和队列

栈、队列,都是线性结构 一、栈 1-1、栈的定义 只能通过访问他的一端来实现数据的存储和检索的线性结构。 特点:先进后出 不含数据元素的栈——空栈。 栈的典型应用,递归。 1-2、栈的存储结构 1-2-1、栈的顺序存储——顺序栈 可以用数组实…

SpringBoot注解--06--注解@Validated

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1 简述1.1 Validated作用1.2 所有参数注解含义1.3 异常处理1.4 Valid和Validated比较Valid级联校验 2.Validated 分组校验1.1为何要分组校验?1.2 代码案…

ERP 系统架构的设计与实践总结

企业资源计划(ERP)系统是一种集成多个业务功能的综合性软件解决方案。在设计和实践 ERP 系统架构时,需要考虑诸多因素,以确保系统能够满足企业的需求,并提供高效、可靠、安全的服务。本文将介绍一些关键的设计原则和实…

2023年全球软件开发大会(QCon上海站2023):核心内容与学习收获(附大会核心PPT下载)

在信息化和全球化日益加速的今天,软件开发技术日新月异,对全球各行各业产生了深远影响。2023年全球软件开发大会(QCon上海站2023)无疑成为行业内外瞩目的焦点。本次大会汇集了全球顶级的软件开发专家、企业领袖、研究者&#xff0…

Filter与Listener(Java Web)

Filter与Listener(Java Web) 概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。过滤器一般完成一些通用的操作,比如:权限控制、…

Hudi学习 6:Hudi使用

准备工作: 1.安装hdfs https://mp.csdn.net/mp_blog/creation/editor/109689143 2.安装spark spark学习4:spark安装_hzp666的博客-CSDN博客 3.安装Scala Hudi学习6:安装和基本操作_hzp666的博客-CSDN博客 spark-shell 写入和读取hudi 2.…

鸿蒙应用开发-自定义可删除列表弹窗

功能介绍: 自定义列表弹窗,可以对弹窗的列表点击删除,参考文档创建列表,自定义弹窗文档自定义弹窗(CustomDialog)。 知识点: 熟悉对List控件的使用。熟悉对List点击删除熟悉自定义弹窗。 使…

2024美赛C题完整解题教程及代码 网球运动的势头

2024 MCM Problem C: Momentum in Tennis (网球运动的势头) 注:在网球运动中,"势头"通常指的是比赛中因一系列事件(如连续得分)而形成的动力或趋势,这可能对比赛结果产生重要影响。球…

【Unity知识点详解】自定义程序集

今天来介绍一下Unity中的自定义程序集。在项目开发中我们经常接触到第三方插件的程序集,如DOTween、Newtonsoft.Json等。 使用自定义程序集有这么几个好处: 方便代码的的复用。当某一功能模块需要在多个项目中重复使用时,可以将代码编译成程…

canvas设置图形各种混合模式,类似photoshop效果

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…