当前位置: 首页 > java >正文

spark jar依赖顺序

1. 执行顺序

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

2. 依赖解释

  1. 提交任务时指定的依赖
    Spark-submit --config "spark.{driver/executor}.extraClassPath=someJar"提交的依赖包
    如指定driver或者executor上的包使用什么包,那个path是jar包的路径
    --conf spark.driver.extraClassPath=/root/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar \
    --conf spark.executor.extraClassPath=/root/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar \
    
  2. SystemClasspath
    Spark安装时候提供的依赖包–spark环境的版本
    如果只是在pom文件里面指定了要用什么版本,但是SystemClasspath 和指定版本不一样且没有配置spark.driver.extraClassPath时,会优先使用SystemClasspath
    在这里插入图片描述

Spark-submit --jars 提交的依赖包
如果环境没有依赖的且不想打包到自己的项目jar里面时,可以使用该方式
如:
–jars /root/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar \

3. 完整的提交示例

su hadoop -c "/usr/local/service/spark/bin/spark-submit \
--class SayloRecUserStaticInfoTable \
--name 'SayloRecUserStaticInfoTable $DATE' \
--jars $PROJECT_ROOT/lib/protobuf-java-3.6.1.jar \
--conf spark.driver.extraClassPath=/root/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar \
--conf spark.executor.extraClassPath=/root/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar \
--conf spark.driver.extraClassPath=$PROJECT_ROOT/lib/protobuf-java-3.6.1.jar \
--conf spark.executor.extraClassPath=$PROJECT_ROOT/lib/protobuf-java-3.6.1.jar \
--conf spark.sql.broadcastTimeout=7200 \
--conf spark.executor.cores=4 \
--conf spark.executor.memory=2G \
--conf spark.local.dir=/data/tmp \
--conf spark.executor.local.dir=/tmp \
--num-executors 2 \
--master yarn \
--deploy-mode cluster \
$PROJECT_ROOT/target/saylo_rec_data_offline_v2-1.0.0-jar-with-dependencies.jar.jar \
dst_table=saylo.t_saylo_user_test \
date=\"$DATE\""

参考

http://www.xdnf.cn/news/1095.html

相关文章:

  • Docker--Docker网络原理
  • docker容器中uv的使用
  • ARM汇编的LDM和STM指令
  • 【sylar-webserver】重构 增加内存池
  • weibo_har鸿蒙微博分享,单例二次封装,鸿蒙微博,微博登录
  • 基于 WebRTC + Pion + HeyGem.ai 实现可互动的数字人系统
  • 安徽京准:关于石油管道监控NTP时间同步服务器方案
  • kafka auto.offset.reset详解
  • 【Qt】QDialog类
  • WebRTC服务器Coturn服务器的管理平台功能
  • 最新扣子(Coze)案例教程:飞书多维表格按条件筛选记录 + 读取分页Coze工作流,无限循环使用方法,手把手教学,完全免费教程
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之显示勾选的购物车数据和创建订单
  • 电气动调节单座V型球阀带阀杆节流套沟槽孔板的作用-耀圣
  • 【华为HCIP | 华为数通工程师】821—多选解析—第十二页
  • 【MySQL】MySQL 表的增删改查(CRUD)—— 下篇(内含聚合查询、group by和having子句、联合查询、插入查询结果)
  • Linux信号的产生
  • Qt绘制可选择范围的日历
  • 嘻游电玩三端客户端部署实战:PC + Android + iOS 环境全覆盖教程
  • 【数据结构】励志大厂版·初级(二刷复习)双链表
  • HCIP(OSPF)(3)
  • 缓存与内存;缺页中断;缓存映射:组相联
  • Linux内核编译(Ubuntu)
  • IOT项目——DIY Weather Station With ESP32
  • Git Flow分支模型
  • C语言高频面试题——结构体和联合体区别
  • Selenium+Java 环境搭建
  • Redis
  • 使用python调用deepseek 多轮对话,详细讲解
  • start_response详解
  • 无线定位技术中的 IQ 采样:深度解析与实战指南