apache-spark - 如何配置 spark-submit(或 DataProc)以从 GitHub 包下载 Maven 依赖项(jars)?

标签 apache-spark ivy google-cloud-dataproc spark-submit github-package-registry

我正在尝试让 spark-submit(通过 GCP DataProc)从 GitHub 包存储库下载 Maven 依赖项。

添加 spark.jars.repositories=https://myuser:mytoken@maven.pkg.github.com/myorg/my-maven-packages-repo/spark-提交 命令没有帮助...

访问了正确的 url,但未下载文件(https://maven.pkg.github.com/myorg/my-maven-packages.repo/myorg/mylibrary/1.0.0/library-1.0.0.jar).

我怎样才能让它工作? (不使用 uber-jars!)

最佳答案

而不是添加:

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>

这将保留当前的搜索顺序(本地、共享、公共(public)),然后在您的私有(private)存储库中搜索。

请注意领域很重要,因此如果您将其用于不同的私有(private)存储库,请更改主机、根目录和领域。

关于apache-spark - 如何配置 spark-submit(或 DataProc)以从 GitHub 包下载 Maven 依赖项(jars)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60420038/

相关文章:

google-cloud-platform - 使用 Dataproc 将 Google Pub/Sub 与 Flink Streaming 结合使用的正确方法是什么?

google-cloud-platform - Dataproc 批量约束违规

mongodb - 如何使用 spark 将 scala 列表持久化到 mongodb

apache-spark - Spark : How to monitor the memory consumption on Spark cluster?

java - 当我的spark作业出现内存不足错误时应该如何调试?

maven - 使用 ivy 将多个 Artifact 发布到 Maven 存储库

java - 在众多依赖项中优先选择最新的 jar (java)

apache-spark - 根据 pyspark 中的条件聚合值

java - 来自 Maven 存储库的 JPA 和 Ivy

java - Apache Spark 作业在本地运行,但在 Google Cloud 集群上抛出空指针