gpt4 book ai didi

intellij-idea - 如何从 IntelliJ IDEA 向远程 Spark 集群提交代码

转载 作者:行者123 更新时间:2023-12-03 07:11:19 30 4
gpt4 key购买 nike

我有两个集群,一个在本地虚拟机中,另一个在远程云中。两个集群都处于独立模式。

我的环境:

Scala: 2.10.4
Spark: 1.5.1
JDK: 1.8.40
OS: CentOS Linux release 7.1.1503 (Core)

本地集群:

Spark Master: spark://local1:7077

远程集群:

Spark Master: spark://remote1:7077

我想完成这个:

在本地(在我的笔记本电脑上)IntelliJ IDEA 中编写代码(只是简单的字数统计),并将 Spark Master URL 设置为 spark://local1:7077spark://remote1:7077,然后在 IntelliJ IDEA 中运行我的代码。也就是说,我不想使用 spark-submit 提交作业。

但是我遇到了一些问题:

当我使用本地集群时,一切顺利。在IntelliJ IDEA中运行代码或者使用spark-submit可以将作业提交到集群并完成作业。

但是当我使用远程集群时,我收到了警告日志:

TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

资源充足,而不是内存充足!

此日志继续打印,无需进一步操作。 spark-submit 和 IntelliJ IDEA 中的运行代码结果相同。

我想知道:

  • 是否可以将代码从 IntelliJ IDEA 提交到远程集群?
  • 如果可以,是否需要配置?
  • 导致我的问题的可能原因有哪些?
  • 我该如何解决这个问题?

非常感谢!

更新

有一个类似的问题here ,但我觉得我的场景不一样。当我在 IntelliJ IDEA 中运行代码并将 Spark Master 设置为本地虚拟机集群时,它可以工作。但我收到了 Initial job has not Accepted any resources;... 警告。

我想知道是安全策略还是烟花造成的?

最佳答案

以编程方式提交代码(例如通过 SparkSubmit)非常棘手。至少有各种环境设置和注意事项(由 Spark-submit 脚本处理)在 Scala 程序中很难复制。我仍然不确定如何实现它:并且 Spark 开发人员社区中已经有许多关于该主题的长期运行的线程。

我在这里的回答是关于您帖子的一部分:特别是

TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

原因通常是作业中请求的内存和/或核心数量与集群上可用的内存和/或核心数量不匹配。可能在从 IJ 提交时

$SPARK_HOME/conf/spark-defaults.conf

与现有集群上的任务所需的参数不正确匹配。您可能需要更新:

spark.driver.memory   4g
spark.executor.memory 8g
spark.executor.cores 8

您可以检查端口 8080 上的 Spark ui,以验证您请求的参数是否在集群上实际可用。

关于intellij-idea - 如何从 IntelliJ IDEA 向远程 Spark 集群提交代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33607220/

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