对于那些比我拥有更多网络/Apache Spark 经验的人来说,这更像是一个推测性问题。
我目前的设置:两台 32GB、4GHz Core i7 机器,我希望将它们连接到 Spark 集群。但是,它们被防火墙隔开:一个是我的家庭桌面(我可以非常轻松地设置必要的端口转发),另一个是我的工作桌面(位于部门防火墙后面;除非我已经在网络上,否则无法访问)。
还有第三台机器:它或多或少位于我的工作网络的 DMZ 上,因此我可以从外部通过 SSH 进入它,然后从那里直接访问我的工作桌面。是否有可能通过这台机器运行端口转发设置,使其充当其他两台机器的透明 Spark 代理?
答案1
您可以将第三台机器设置为 SPARK 集群的主服务器,确保它可以通过 ssh 与其他节点通信,并使用 spark-submit 在其上启动应用程序。
您必须以集群模式提交应用程序,以便驱动程序在第 3 台机器上运行。一旦其他节点在主节点上注册为工作节点,它们将开始接收任务。
这里你唯一的问题将是 3 个节点(特别是工作桌面)之间的通信,而不是如何在你决定成为集群主控的机器上启动应用程序。