【问题标题】:Apache Spark: workers are connected and free, but do not accept tasksApache Spark:工作人员已连接且免费,但不接受任务
【发布时间】:2016-05-02 05:33:24
【问题描述】:

我有一个简单的 Spark 集群 - 一个主节点和一个从节点。 Worker 是空闲的,没有繁忙的资源。

Web UI screenshot

但是当我尝试执行任何应用程序时(例如 spark-shell 中的 'sc.parallelize(1 to 10).foreach(println)'),我看到以下错误:

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

但是,当应用程序在与从属服务器相同的服务器上启动时,它会成功运行。看起来某事监听了错误的网络接口。

配置是默认的,用来自github的spark克隆。

我开始master的方式如下:

192.168.111.204@spark > ./sbin/start-master.sh -h 192.168.111.204

奴隶:

192.168.111.230@spark > ./sbin/start-slave.sh  spark://192.168.111.204:7077 -h 192.168.111.230

应用:

192.168.111.229@spark > ./bin/spark-shell --master spark://192.168.111.204:7077

我应该检查什么?

UPD:刚刚在两台虚拟机上尝试过相同的操作。工作正常。可能服务器的主机名有问题。

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    你可以尝试一些事情:

    可能由于某种原因,从属服务器没有分配任何内核,请尝试使用-c 启动从属服务器。

    -c CORES, --cores CORES Total CPU cores to allow Spark applications 
        to use on the machine (default: all available); only on worker
    

    【讨论】:

    • 我已经试过了。没有结果。反正WebUI显示资源很多。
    【解决方案2】:

    谢谢大家,问题解决了。正如我之前所猜测的,网络是造成麻烦的原因。

    当 spark-shell 和 spark-submit 启动时,它们会打开一个端口进行监听。但是,我没有找到为此目的指定主机的标志。因此,他们开始侦听外部接口,该端口被防火墙阻止。我必须将以下行添加到 conf/spark-env.sh

    export SPARK_LOCAL_IP=192.168.111.229
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多