gpt4 book ai didi

hadoop - 'Provided' 是哪些特定的 Spark 库?

转载 作者:可可西里 更新时间:2023-11-01 14:27:37 25 4
gpt4 key购买 nike

在官方 Spark documentation据解释,application jar 对应于:

A jar containing the user's Spark application. In some cases users will want to create an "uber jar" containing their application along with its dependencies. The user's jar should never include Hadoop or Spark libraries, however, these will be added at runtime

这可以通过在 maven 或 sbt 中使用“Provided”范围轻松解决:

"org.apache.spark" % "spark-core_2.10" % sparkVersion % Provided

但是,我可能在这里遗漏了一些明显的东西,但我找不到直接的答案,将在运行时添加的具体库是什么?它会只是核心的(例如 spark-core、hadoop-core)还是会添加其他一些(例如:spark-streaming、hadoop-hdfs)?

有没有办法检查这个并获取将在运行时添加的 Spark 依赖项的实际列表,因此可以标记为已提供?

最佳答案

简短的回答是:所有 Spark 库和您从 download page 下载 Spark 时选择的 hadoop 版本.

较长的答案是:这取决于您使用的部署模式:

  1. 本地模式:由于本地模式下只有一个 JVM,即驱动程序应用程序的 JVM - 那么这取决于您如何打包驱动程序应用程序。如果您没有这样做(例如,直接从 IDE 运行),那么将依赖项定义为“已提供”没有任何意义,因此无论您在 SBT 文件中拥有哪个库,都将在运行时出现。如果您打包您的驱动程序应用程序并尝试使用标记为已提供的 Spark 运行它,您可能会看到失败,除非您以其他方式将这些 jar 混合在一起(但无论如何本地模式并不是真的意味着......) .

  2. 独立模式:如果您将下载页面提供的预构建包之一部署到您的集群(主机器和工作机器),它们包含所有 Spark 的库(包括 Spark SQL、Streaming、GraphX...) 和您选择的 Hadoop 版本。如果您部署了自己构建的 jar - 那么,这取决于您打包的内容和方式...

  3. Yarn 模式:当您将 Spark 应用程序提交给 YARN 管理器时,您可以设置应用程序要使用的 Spark jar 位置(通过参数 spark.yarn.jar) - 将加载 jar(或 jar)包含的任何内容。再一次 - 如果该 jar 是预构建的 jar 之一,它包含所有 Spark 库和所选的 Hadoop 版本

关于hadoop - 'Provided' 是哪些特定的 Spark 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com