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

【教程】如何编译指定版本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为例

准备工具

  • sbt:  下载并安装
  • jdk:  jdk8

正式编译

假设你当前正在下载的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:// 导致的


http://www.kler.cn/a/456397.html

相关文章:

  • Ubuntu 24.04.1 LTS快速源码安装postgresql15
  • 考研互学互助系统|Java|SSM|VUE| 前后端分离
  • uniapp-vue3(下)
  • 细说STM32F407单片机通过IIC读写EEPROM 24C02
  • ubuntu22装机的一些问题及解决方法
  • 华为手机建议使用adb卸载的app
  • [Hive]七 Hive 内核
  • Kotlin 协程基础知识总结三 —— 协程上下文与异常处理
  • AutoFOX:一种冠状动脉X线造影与OCT的自动化跨模态3D融合框架|文献速递-视觉大模型医疗图像应用
  • IDEA 搭建 SpringBoot 项目之配置 Maven
  • 打造RAG系统:四大向量数据库Milvus、Faiss、Elasticsearch、Chroma 全面对比与选型指南
  • 【新方法】通过清华镜像源加速 PyTorch GPU 2.5安装及 CUDA 版本选择指南
  • 从CreateDialogIndirectParam起---我与大模型对话
  • 使用机器学习在单细胞水平识别肿瘤细胞
  • 【Halcon】数据结构汇总
  • 从0入门自主空中机器人-3-【环境与常用软件安装】
  • 关于最新MySQL9.0.1版本zip自配(通用)版下载、安装、环境配置
  • 1.business english--build rapport
  • 分類タスクの評価指標をわかりやすく解説!
  • 【畅购电商】项目总结
  • 计算机毕业设计Python+Spark知识图谱酒店推荐系统 酒店价格预测系统 酒店可视化 酒店爬虫 酒店大数据 neo4j知识图谱 深度学习 机器学习
  • 机器学习和深度学习中的种子设置
  • 【泰克生物】酵母展示技术在纳米抗体筛选中的应用:优化抗体筛库策略
  • C++入门基础(下)
  • C语言明示常量
  • MATLAB符号对象-微积分与方程求解