小编Eil*_*iar的帖子

Spark 2.0独立模式动态资源分配工作者启动错误

我在独立模式下运行Spark 2.0,成功将其配置为在服务器上启动,并且还能够将Ipython Kernel PySpark配置为Jupyter Notebook中的选项.一切正常但我面临的问题是,对于我启动的每个笔记本,我的所有4个工作人员都被分配到该应用程序.因此,如果我的团队中的另一个人尝试使用PySpark内核启动另一个笔记本,那么在我停止第一个笔记本并释放所有工作人员之前,它根本不起作用.

为了解决这个问题,我试图按照Spark 2.0文档中的说明进行操作.所以,就我而言,$SPARK_HOME/conf/spark-defaults.conf我有以下几行:

spark.dynamicAllocation.enabled    true
spark.shuffle.service.enabled      true
spark.dynamicAllocation.executorIdleTimeout    10
Run Code Online (Sandbox Code Playgroud)

另外,$SPARK_HOME/conf/spark-env.sh我有:

export SPARK_WORKER_MEMORY=1g
export SPARK_EXECUTOR_MEMORY=512m
export SPARK_WORKER_INSTANCES=4
export SPARK_WORKER_CORES=1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试启动工作时,使用时$SPARK_HOME/sbin/start-slaves.sh,只有第一个工作人员成功启动.来自第一个工作人员的日志最终如下:

16/11/24 13:32:06 INFO工人:成功注册了主人spark:// cerberus:7077

但工人2-4的日志显示了这个错误:

INFO ExternalShuffleService:使用useSasl = false在端口7337上启动shuffle服务16/11/24 13:32:08错误收件箱:忽略错误java.net.BindException:地址已在使用中

看来(对我来说)第一个工作人员在7337端口成功启动了shuffle-service,但工作人员2-4"不知道"这个并尝试在同一个端口上启动另一个shuffle-service.

如果我首先启动shuffle-service(使用$SPARK_HOME/sbin/start-shuffle-service.sh)然后尝试启动所有worker($SPARK_HOME/sbin/start-slaves.sh),那么所有工作人员(1-4)也会出现问题.

有没有选择绕过这个?如果有一个shuffle服务正在运行并连接到它而不是尝试创建一个新服务,那么所有工作人员都能够修复吗?

apache-spark jupyter-notebook apache-spark-2.0

5
推荐指数
1
解决办法
318
查看次数