gpt4 book ai didi

apache-spark - 从 Eclipse 和 Spark Context 将 Spark 应用程序作为 yarn 作业提交

转载 作者:行者123 更新时间:2023-12-04 10:16:50 24 4
gpt4 key购买 nike

我已经可以提交 local来自我的 Eclipse IDE 的 spark 作业(用 Scala 编写)。但是,我想修改我的 Spark 上下文(在我的应用程序内部),以便当我“运行”应用程序(在 Eclipse 内部)时,该作业将使用 Yarn 作为资源管理器发送到我的远程集群。

使用 spark-submit ,我可以成功地将作业提交到集群:spark-submit --class <main class> --master yarn-cluster <jar>
我想在 IDE 中实现相同的结果。
我的 sbt 配置(应用程序根目录)如下所示:
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.1"
libraryDependencies += "org.apache.spark" %% "spark-yarn" % "1.5.1" % "provided"
在我的应用程序中:
val conf = new SparkConf().setAppName("xxx").setMaster("yarn-cluster")
但是,我收到以下错误:

Detected yarn-cluster mode, but isn't running on a cluster. Deployment to YARN is not supported directly by SparkContext. Please use spark-submit.

最佳答案

1) 根据我进行的研究,您不能使用 yarn-cluster从 Eclipse 远程提交时,作为代码中的主人,使用 spark-client反而。

new SparkConf().setAppName("test-app").setMaster("yarn-client");

检查这个 Cloudera资源,他们正在详细说明可能是什么限制因素阻止您在集群模式下运行“交互式”应用程序。

2) 您可能会遇到资源未正确复制到集群的问题。在我的案例中解决了这个问题的是在项目的类路径中包含以下文件(没有任何幻想,现在我只是将它们复制到项目的 src/java 目录中):
  • 核心站点.xml
  • hdfs-site.xml
  • yarn 站点.xml

  • 确保尤其是 core-site.xml 在类路径中,因为我读过的教程都没有提到它.. 你会遇到麻烦,因为没有 fs.defaultFS如果存在配置,Spark 会认为目标目录与源(您的本地文件系统)相同,而不是远程 HDFS 文件系统。

    关于apache-spark - 从 Eclipse 和 Spark Context 将 Spark 应用程序作为 yarn 作业提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35029253/

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