apache-spark - Spark 到 worker 的独立连接驱动程序

标签 apache-spark spark-submit apache-spark-standalone

我正在尝试在本地托管一个 spark 独立集群。我在局域网上连接了两台异构机器。下面列出的架构的每一部分都在 docker 上运行。 我有以下配置

  • master 在机器 1 上(暴露端口 7077)
  • 机器 1 上的 worker
  • 机器 2 的驱动程序

我使用一个测试应用程序来打开一个文件并计算它的行​​数。 当文件复制到所有工作人员并且我使用 SparkContext.readText()

时应用程序工作

但是,当我使用 SparkContext.parallelize() 在 worker 上访问它时,文件仅存在于 worker 上时,我有以下显示:

INFO StandaloneSchedulerBackend: Granted executor ID app-20180116210619-0007/4 on hostPort 172.17.0.3:6598 with 4 cores, 1024.0 MB RAM
INFO StandaloneAppClient$ClientEndpoint: Executor updated: app-20180116210619-0007/4 is now RUNNING
INFO StandaloneAppClient$ClientEndpoint: Executor updated: app-20180116210619-0007/4 is now EXITED (Command exited with code 1)
INFO StandaloneSchedulerBackend: Executor app-20180116210619-0007/4 removed: Command exited with code 1
INFO StandaloneAppClient$ClientEndpoint: Executor added: app-20180116210619-0007/5 on worker-20180116205132-172.17.0.3-6598 (172.17.0.3:6598) with 4 cores```

在没有实际计算应用程序的情况下不断重复。

当我将驱动程序与工作人员放在同一台电脑上时,它就可以工作了。所以我猜这两个网络之间存在某种允许的连接。您是否知道这样做的方法(要打开哪些端口,要在/etc/hosts 中添加哪个地址...)

最佳答案

TL;DR 确保可以从集群中的每个节点访问 spark.driver.host:spark.driver.port

一般来说,您已确保所有节点(执行程序和主节点)都可以访问驱动程序。

  • 在集群模式下,驱动程序在其中一个执行程序上运行,这在默认情况下是满足的,只要没有为连接关闭的端口(见下文)。
  • 在客户端模式下,已经启动驱动程序的机器必须可以从集群访问。这意味着 spark.driver.host 必须解析为可公开访问的地址。

在这两种情况下,您都必须记住,默认情况下驱动程序在随机端口上运行。可以通过设置 spark.driver.port 使用固定的。显然,如果您想同时提交多个申请,这就不太管用了。

此外:

when when the file is only present on worker

不会工作。所有输入都必须可以从驱动程序以及每个执行程序节点访问。

关于apache-spark - Spark 到 worker 的独立连接驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49884290/

相关文章:

java - Apache Spark Maven POM 错误

apache-spark - spark-mapwithstate 为什么存储空间的数量还是20个?

apache-spark - 错误 : path does not exist in spark submit with hadoop

apache-spark - Spark 目录元数据存储在哪里?

apache-spark - 如何在spark-submit命令中引用.so文件

scala - 使用 sbt run 或使用 spark-submit 脚本运行 spark 应用程序的区别

apache-spark - 我应该为 Spark 选择哪种集群类型?

apache-spark - 在spark独立模式下,master和executors位于一台机器上吗?

apache-spark - 连续信息 JobScheduler :59 - Added jobs for time *** ms in my Spark Standalone Cluster

mysql - 用于从列中了解流行主题标签的 SQL 查询,该列具有存储为数组的主题标签列表