apache-spark - 如何配置 spark-submit(或 DataProc)以从 GitHub 包下载 maven 依赖项(jar)?
问题描述
我正在尝试spark-submit
(通过 GCP DataProc)从 GitHub 包存储库下载 Maven 依赖项。
添加spark.jars.repositories=https://myuser:mytoken@maven.pkg.github.com/myorg/my-maven-packages-repo/
到spark-submit
命令没有帮助......
访问了正确的 url,但未下载文件 ( https://maven.pkg.github.com/myorg/my-maven-packages.repo/myorg/mylibrary/1.0.0/library-1.0.0.jar
)。
我怎样才能得到这个工作?(不使用超级罐子!)
解决方案
而不是添加:
spark.jars.repositories=https://myuser:mytoken@maven.pkg.github.com/myorg/my-maven-packages-repo/
到spark-submit
命令
添加:
--files=gs://my-bucket/github-ivysettings.xml
和
spark.jars.ivySettings=github-ivysettings.xml
将以下文件 ( github-ivysettings.xml
) 上传到存储桶:
<ivysettings>
<settings defaultResolver="default"/>
<include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
<credentials
host="maven.pkg.github.com" realm="GitHub Package Registry"
username="myuser" passwd="mytoken"
/>
<resolvers>
<ibiblio
name="private-github"
m2compatible="true" useMavenMetadata="true" usepoms="true"
root="https://maven.pkg.github.com/myorg/my-maven-packages-repo/"
pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
/>
<chain name="default" returnFirst="true" checkmodified="true">
<resolver ref="local" />
<resolver ref="shared" />
<resolver ref="public" />
<resolver ref="private-github" />
</chain>
</resolvers>
</ivysettings>
这将保留当前的搜索顺序(本地、共享、公共),然后在您的私有存储库中搜索。
请注意,领域很重要,因此如果您将其用于不同的私有存储库,请更改主机、根目录和领域。
推荐阅读
- elasticsearch - 如何同时创建字段关键字类型和文本类型以同时启用聚合和自由文本搜索
- python-3.x - 如何在 Python 3.9 中设置 http 代理
- javascript - nextjs 中无响应的 Grid 组件
- c# - XML反序列化嵌套
有属性 - r - 删除异常值的用户函数
- java - 将 JBoss 主页替换为应用程序主页
- docker - 使用 docker compose 和 mountebank 模拟外部调用
- flutter - Flutter 发布 HTTP 请求
- php - 虽然它是另一个项目 php 使用相同的会话登录
- node.js - JWT 不会过期 (Node.js)