【发布时间】:2017-07-06 17:16:20
【问题描述】:
Pyspark shell 使用 Py4J 启动一个 Java 网关,然后与它对话并将 python SparkContext 发送到 Java 网关。
但是,我如何知道 Spark Context 打开了哪个端口? PySpark 如何决定使用哪个端口来创建 Java 网关 Spark 上下文?
补充问题:
- 谁启动 Py4j java 进程?
【问题讨论】:
标签: apache-spark pyspark
Pyspark shell 使用 Py4J 启动一个 Java 网关,然后与它对话并将 python SparkContext 发送到 Java 网关。
但是,我如何知道 Spark Context 打开了哪个端口? PySpark 如何决定使用哪个端口来创建 Java 网关 Spark 上下文?
补充问题:
【问题讨论】:
标签: apache-spark pyspark
也许 PySpark 正在使用默认端口,有关详细信息,请参阅 Py4J 文档https://www.py4j.org/faq.html#what-ports-are-used-by-py4j。
【讨论】:
端口是从驱动程序中的可用端口中随机选择的。 pyspark 以临时文件名作为参数启动 spark java 进程,java 进程将端口和 auth_token 写入临时文件。 Python 读取临时文件并创建一个 py4j 网关。您可以在 sc._gateway 中访问 py4j 网关,并从 sc._gateway.gateway_parameters.port 中读取端口。
【讨论】: