AWS session manager plugin
,以便能够从容器本身连接到DB。 aptitionally,Spark Master容器负责提交火花作业,该火花工作将利用我们在同一容器中进行的端口转发(
aws ssm start-session
)并连接到DB。
现在,当我在容器内运行
AWS configure
和
aws ssm start-session
命令时,我得到了
Starting session with session id xxx.
Port xxxx opened for session ID XXX
Waiting for connections...
当我在同一容器上立即运行Spark-Submit时,我从AWS SSM终端获得Connection accepted for session xxxx
,然后在此之后,Spark Job停止了错误:
org.postgresql.util.PSQLException: Connection to localhost:5555 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
因此,看起来连接在很短的时间内被接受,然后被拒绝了吗?两个过程报告了两个完全不同的结果。
,我解决了这个问题,如果有人在将来面临同样的问题,我将留下对我有用的东西。
我做错了什么是仅在Spark Master容器中运行
aws ssm start-session
进程,connection accepted
消息是接受主的连接,但是Spark可以处理懒惰的转换,因此,当主人实际上确实找到了执行操作时( sales.show(10)
aws ssm start-session
。每个工人容器将在第一次使用涉及数据的工作时分别连接到DB。