2016-04-29 54 views
2

我有一个简单的Spark群集 - 一个主机和一个从机。工人是免费的,没有繁忙的资源。Apache Spark:工作人员已连接并且空闲,但不接受任务

Web UI screenshot

但是当我尝试执行任何应用程序(例如, 'sc.parallelize(1〜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的火花克隆。

我开始掌握以下方法:

[email protected] > ./sbin/start-master.sh -h 192.168.111.204 

奴:

[email protected] > ./sbin/start-slave.sh spark://192.168.111.204:7077 -h 192.168.111.230 

应用:

[email protected] > ./bin/spark-shell --master spark://192.168.111.204:7077 

我应该怎么检查?

UPD:刚试过两台虚拟机一样。工作正常。也许服务器与主机名有一些问题。

回答

0

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

当spark-shell和spark-submit开始时,它们会打开一个端口来侦听。然而,我没有找到一个标志为此目的指定一个主机。于是,他们开始监听外部接口,即防火墙阻止的端口。我有以下行添加到的conf/spark-env.sh

export SPARK_LOCAL_IP=192.168.111.229 
0

有几件事情,你可以尝试:

也许出于某种原因,奴隶没有被分配任何核心,尝试用-c开始奴隶。

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

我已经试过了。没有结果。无论如何,WebUI显示有很多资源。 –

相关问题