【教程】如何编译指定版本Spark

背景

我们目前在K8S集群中使用的spark是,基于kubeflow的Spark-Operator来运行的,对应的spark版本: 3.2.1

为啥要编译指定版本的Spark?

主要是需要读取一个消息队列的数据源, 看到有对应数据源spark读取的实现,有现成的。不过,是基于低版本spark 2.3的实现,想直接拿来用(果然没有现成的馅饼)。

结果: 悲剧了, 根本用不上。 还遇到一堆问题(不支持 On K8S、 spark operator的兼容性问题)

最终: 跑是跑起来了, 只能local模式。On K8S的问题有太多兼容性问题

所以,想着总结一下在这过程中遇到的问题

源码下载

Apache Spark, 选择对应的分支即可, 以下操作都以branch-2.3为例

准备工具

正式编译

假设你当前正在下载的spark根目录**${source_code_root}**

添加模块编译:

  • -Pkubernetes: 启用 Kubernetes 模块

编译命令如下:

复制代码
./build/sbt  -Pkubernetes clean package

编译结果

在编译完成后,产生的结果如下:

  • 运行环境的jar包: {source_code_root}/assembly/target/scala-{scala_version}/jars

注意: 不同模块编译时,依赖生产的位置不同,最终都会放入这个jars目录下

  • spark-submit: ${source_code_root}/bin
  • spark-class: ${source_code_root}/bin
  • entrypoint.sh${source_code_root}/resource-managers/kubernetes/docker/src/main/dockerfiles/spark

运行程序

复制代码
./bin/spark-submit \
    --master k8s://https://<k8s-apiserver-host>:<k8s-apiserver-port> \
    --deploy-mode cluster \
    --name spark-pi \
    --class org.apache.spark.examples.SparkPi \
    --conf spark.executor.instances=5 \
    --conf spark.kubernetes.container.image=<spark-image> \
    local:///path/to/examples.jar

遇到的报错

  1. Exception in thread "main" org.apache.spark.SparkException: The Kubernetes mode does not yet support referencing application dependencies in the local file system.

解决方案: 不是spark的依赖jar的问题,是你需要提交的程序jar的问题,一般都是没有在需要运行的程序前面加: **local://**导致的

相关推荐
人工智能培训9 分钟前
人工智能性别与地域偏见的成因及消解路径
大数据·人工智能·算法·生活
段一凡-华北理工大学10 分钟前
高炉炉况智能诊断与预警实战~系列文章24:炉况诊断实战全景复盘:从需求到价值的完整案例
大数据·人工智能·机器学习·模型可解释性·高炉智能化·高炉炉况诊断·高炉炉况预警
Elastic 中国社区官方博客20 分钟前
安装 Elasticsearch
大数据·数据库·elasticsearch·搜索引擎·全文检索
衡石科技21 分钟前
HENGSHI ChatBI|不止智能问数,Agentic Analytics 重构经营分析全流程
大数据·重构·数据分析·产品运营·bi
智讯阁37 分钟前
能直接操作电脑的AI助手有哪些?AiPy、QoderWork、TRAE Work、WorkBuddy深度实测
大数据·人工智能
TDengine (老段)38 分钟前
TDengine 内存管理 — 池化、缓存、回收
大数据·数据库·物联网·缓存·时序数据库·tdengine·涛思数据
小白说大模型1 小时前
AI 提示词专栏:Zero-Shot 与 One-Shot Prompt 的差别与适用场景
大数据·数据库·人工智能·sql·深度学习·prompt
MuMuMu12231 小时前
文旅户外场景智能回收终端工程难点解析:越华环保集团碳惠小屋耐候与供电系统实践
java·大数据·算法
hzxpaipai1 小时前
制造业官网产品信息架构怎么设计?从产品分类到后台数据结构
大数据·数据结构
hh9501 小时前
Agent Plan × DeepSeek Harness:基于 DeepSeek 的物理系统数字孪生建模与实时同步:架构设计与实现深度解析
大数据·人工智能·adg·agent plan·adg成都社区