gpt4 book ai didi

java - 在 spark 提交中覆盖 spark 的库

转载 作者:可可西里 更新时间:2023-11-01 14:51:54 26 4
gpt4 key购买 nike

我们应用程序的 hadoop 集群安装了 spark 1.5。但由于特定要求,我们开发了 2.0.2 版的 spark 作业。当我将作业提交到 yarn 时,我使用 --jars 命令覆盖集群中的 spark 库。但它仍然没有选择 scala 库 jar。它抛出一个错误说

ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
at org.apache.spark.sql.SparkSession$Builder.config(SparkSession.scala:713)
at org.apache.spark.sql.SparkSession$Builder.appName(SparkSession.scala:704)

关于如何在 spark 提交期间覆盖集群库有什么想法吗?

我用来提交作业的 shell 命令如下。

spark-submit \
--jars test.jar,spark-core_2.11-2.0.2.jar,spark-sql_2.11-2.0.2.jar,spark-catalyst_2.11-2.0.2.jar,scala-library-2.11.0.jar \
--class Application \
--master yarn \
--deploy-mode cluster \
--queue xxx \
xxx.jar \
<params>

最佳答案

这很简单——Yarn 不关心你运行的是哪个版本的 Spark,它会执行 yarn 客户端提供的 jar,这些 jar 由 spark submit 打包。该过程将您的应用程序 jar 与 spark 库一起打包。

为了部署 Spark 2.0 而不是提供的 1.5,您只需在开始工作的主机上安装 spark 2.0,例如在您的主目录中,将 YARN_CONF_DIR env vars 设置为指向您的 hadoop conf,然后使用该 spark-submit。

关于java - 在 spark 提交中覆盖 spark 的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41184821/

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