尝试对Spark应用进行远程调试:java.io.IOException“握手失败-连接过早关闭

时间:2018-12-28 12:38:57

标签: scala apache-spark intellij-idea amazon-ec2

我正在尝试通过AWS EC2机器对Spark应用进行远程调试。

我已经使用以下方法建立了ssh隧道:

ssh -i $HOME/pem/dev/dna-dev.pem -N -D 5005 hadoop@10.121.8.132

然后将适当的参数添加到我的spark-submit命令中:

spark-submit --driver-java-options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 --class org.sergio.dna.poc.TestEngine   --master yarn   --deploy-mode client   --executor-memory 2G   --num-executors 1 --executor-cores 1  DNA-Sergio-PoC-1.0-SNAPSHOT.jar

最后在Intellij中通过端口5005创建远程调试配置

spark-submit命令说它正在等待

Listening for transport dt_socket at address: 5005

但是当我运行远程调试时,Intellij说:

Error running 'RemoteTest': Unable to open debugger port (localhost:5005): java.io.IOException "handshake failed - connection prematurally closed"

我缺少任何配置吗?我已经在cloudera集群中做到了这一点,并且工作正常,但是我是AWS的新手,我想知道服务器端是否缺少某些东西

谢谢

1 个答案:

答案 0 :(得分:1)

最后,我不需要ssh隧道。只需在EMR控制台->安全组->主群集->入站(对于我来说是5005)中打开“所有流量”的端口即可。

然后在您的intellij远程调试配置中,使用EMR IP更改“ localhost”。

就完成了。

相关问题