13

我安装了一个 Apache Spark 0.9.0 集群,我试图部署一个从 HDFS 读取文件的代码。这段代码会引发警告,最终作业会失败。这是代码

/**
 * running the code would fail 
 * with a warning 
 * Initial job has not accepted any resources; check your cluster UI to ensure that 
 * workers are registered and have sufficient memory
 */

object Main extends App {
    val sconf = new SparkConf()
    .setMaster("spark://labscs1:7077")
    .setAppName("spark scala")
    val sctx = new SparkContext(sconf)
    sctx.parallelize(1 to 100).count
}

以下是警告消息

初始工作没有接受任何资源;检查您的集群 UI 以确保工作人员已注册并有足够的内存

如何摆脱这个或者我错过了一些配置。

4

7 回答 7

5

spark.cores.max当您通过设置请求的核心数量或RAM(每个节点)数量spark.executor.memory超过可用时,您会得到此信息。因此,即使没有其他人在使用集群,并且您指定要使用,例如每个节点 100GB RAM,但您的节点只能支持 90GB,您也会收到此错误消息。

公平地说,在这种情况下消息是模糊的,如果它说你超过了最大值会更有帮助。

于 2014-03-23T11:50:47.643 回答
2

我有这个确切的问题。我有一个简单的 1 节点 Spark 集群,在尝试运行我的 Spark 应用程序时出现此错误。

我浏览了上面的一些建议,当我尝试对集群运行 Spark shell 并且无法在 UI 中看到这一点时,我开始怀疑我的集群工作不正常。

在我的主机文件中,我有一个条目,比方说SparkNode,它引用了正确的 IP 地址。

我无意中在conf/spark-env.sh文件中针对SPARK_MASTER_IP变量输入了错误的 IP 地址。我将其更改为SparkNode并且我也更改SPARK_LOCAL_IP为指向SparkNode

为了测试这一点,我在浏览器中打开了 UI SparkNode:7077,我可以看到 Spark 的一个实例正在运行。

然后我使用 Wildfires 建议运行 Spark shell,如下所示:

MASTER=spark://SparkNode:7077 bin/spark-shell

回到 UI,我现在可以看到 Spark shell 应用程序正在运行,这是我以前看不到的。

所以我退出了 Spark shell 并使用 Spark Submit 运行了我的应用程序,它现在可以正常工作了。

绝对值得检查您所有的 IP 和主机条目,这是我的问题的根本原因。

于 2015-01-06T11:49:43.760 回答
2

看起来 Spark master 无法为此任务分配任何工作人员。要么工人没有开始工作,要么他们都很忙。

检查主节点上的 Spark UI(端口由SPARK_MASTER_WEBUI_PORTin指定spark-env.sh,默认为 8080)。它应该如下所示:SparkUI 示例

为了使集群正常运行:

  • 一定有一些工人状态为“活着”
  • 必须有一些可用的核心(例如,如果所有核心都忙于冻结任务,则集群不会接受新任务)
  • 必须有足够的可用内存
于 2014-02-11T08:13:18.480 回答
2

还要确保你的火花工人可以与司机进行双向沟通。检查防火墙等。

于 2014-03-24T18:52:04.270 回答
0

您需要指定正确的 SPARK_HOME 和驱动程序的 IP 地址,以防 Spark 可能无法找到您的 Netty jar 服务器。请注意,您的 Spark 主服务器应该侦听您想使用的正确 IP 地址。这可以通过在文件 spark-env.sh 中设置 SPARK_MASTER_IP=yourIP 来完成。

   val conf = new SparkConf()
  .setAppName("test")
  .setMaster("spark://yourSparkMaster:7077")
  .setSparkHome("YourSparkHomeDir")
  .set("spark.driver.host", "YourIPAddr")
于 2014-05-09T14:51:37.543 回答
0

检查有关主机名、IP 地址和环回的错误。确保设置SPARK_LOCAL_IPSPARK_MASTER_IP

于 2014-09-24T13:54:13.227 回答
0

我有类似的问题初始作业没有接受任何资源,通过在 spark-env.sh 上指定 spark 正确的下载 url 或在所有从站上安装 spark 来修复它。

export SPARK_EXECUTOR_URI=http://mirror.fibergrid.in/apache/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz

初始工作没有接受任何资源;检查您的集群 UI 以确保工作人员已注册并有足够的内存

于 2016-05-24T08:15:43.187 回答