You are submitting application in the client mode. It means that driver process is started on your local machine.
When executing Spark applications all machines have to be able to communicate with each other. Most likely your driver process is not reachable from the executors (for example it is using private IP or is hidden behind firewall). If that is the case you can confirm that by checking executor logs (go to application, select on of the workers with the status EXITED
and check stderr
. You "should" see that executor is failing due to org.apache.spark.rpc.RpcTimeoutException
).
There are two possible solutions:
- Submit application from the machine which can be reached from you cluster.
- Submit application in the cluster mode. This will use cluster resources to start driver process so you have to account for that.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…