使用 YARN 集群模式的 NAT 后面的 Spark 应用程序
Posted
技术标签:
【中文标题】使用 YARN 集群模式的 NAT 后面的 Spark 应用程序【英文标题】:Spark application behind a NAT using YARN cluster mode 【发布时间】:2018-02-25 06:28:52 【问题描述】:在客户端部署模式下,Spark 驱动程序需要能够接收来自 Spark 执行程序的传入 TCP 连接。但是,如果 Spark 驱动程序位于 NAT 之后,它就无法接收传入连接。在 YARN 集群部署模式下运行 Spark 驱动程序是否会克服这种位于 NAT 后面的限制,因为 Spark 驱动程序显然是在 Spark 主服务器上执行的?
【问题讨论】:
【参考方案1】:在 YARN 集群部署模式下运行 Spark 驱动程序是否会克服在 NAT 后面的限制,因为 Spark 驱动程序显然是在 Spark 主服务器上执行的?
是的,它会的。另一种可能的方法是配置:
spark.driver.port
spark.driver.bindAddress
并创建到其中一个节点的 SSH 隧道。
【讨论】:
嗨@user8371915 - 请你详细说明一下?我正在尝试这种方法,但在 Spark 2.2.0 上取得了有限的成功 @user1158559 总体而言,您必须确保集群中所有节点(主节点或其等效节点、工作者、驱动程序、执行程序)之间的完全连接。如何实现这些取决于您(您可以根据集群配置找到不同的解决方案)。以上是关于使用 YARN 集群模式的 NAT 后面的 Spark 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用 YARN 在集群模式下运行 spark 时出现 java.io.FileNotFoundException