我使用spark-ec2脚本启动了一个spark集群。 (编辑:登录到主服务器后),我可以在主节点上本地运行spark作业:
spark-submit --class myApp --master local myApp.jar
但我似乎无法在群集模式下运行该作业:
../spark/bin/spark-submit --class myApp --master spark://54.111.111.111:7077 --deploy-mode cluster myApp.jar
主控的IP地址是从AWS控制台获取的。 我收到以下错误:
WARN RestSubmissionClient: Unable to connect to server
Warning: Master endpoint spark://54.111.111.111:7077 was not a REST server. Falling back to legacy submission gateway instead.
Error connecting to master (akka.tcp://sparkMaster@54.111.111.111:7077).
Cause was: akka.remote.InvalidAssociation: Invalid address: akka.tcp://sparkMaster@54.177.156.236:7077
No master is available, exiting.
如何提交到EC2火花群?
答案 0 :(得分:0)
当您使用--master local
时,您也无法连接到主人。您正在与应用程序在同一JVM中执行Spark操作。 (见docs。)
您的应用程序代码也可能有误。首先,尝试在主节点上运行spark-shell
。 /root/spark/bin/spark-shell
配置为在没有标志的情况下启动时连接到EC2 Spark主服务器。如果可行,您可以在笔记本电脑上试用spark-shell --master spark://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:7077
。请务必使用主机的外部IP或主机名。
如果也有效,请尝试在客户端模式下运行应用程序(不使用--deploy-mode cluster
)。希望在尝试所有这些过程中,你会发现原始方法出了什么问题。祝你好运!
答案 1 :(得分:0)
这与EC2无关,我的服务器上也有类似的错误。我能够通过覆盖spark-env.sh SPARK_MASTER_IP来解决它。