使用 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 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop集群搭建

Yarn模式下Apache HAWQ的运行

使用 YARN 在集群模式下运行 spark 时出现 java.io.FileNotFoundException

Spark运行模式_基于YARN的Resource Manager的Client模式(集群)

spark集群搭建

集群------LVS负载均衡集群(NAT模式 LVS负载均衡集群部署图文详解)