Java 如何使用桥接模式在docker容器中运行Apache Spark 2.1驱动程序
我正在尝试使用带有阴影jar的客户端模式,从一个停靠的apachespark应用程序连接到独立的apachespark集群 我设置了以下属性Java 如何使用桥接模式在docker容器中运行Apache Spark 2.1驱动程序,java,apache-spark,docker,spark-streaming,Java,Apache Spark,Docker,Spark Streaming,我正在尝试使用带有阴影jar的客户端模式,从一个停靠的apachespark应用程序连接到独立的apachespark集群 我设置了以下属性 - spark.driver.port - spark.driver.blockManager.port - spark.driver.bindAddress with Docker Host's IP - SPARK_PUBLIC_DNS environment variable with Docker Host's IP. 我已公开并映射设置
- spark.driver.port
- spark.driver.blockManager.port
- spark.driver.bindAddress with Docker Host's IP
- SPARK_PUBLIC_DNS environment variable with Docker Host's IP.
我已公开并映射设置端口与主机端口。应用程序显示在Spark Master上运行,但没有从workers返回响应。
在前面没有设置这些属性的情况下,它在spark master上显示为等待状态,设置这些属性后,它显示为正在运行,但操作没有返回响应,因此它挂起
如果我没有将spark.driver.bindAddress设置为Docker主机的IP,那么在检查workers上的日志时,将生成驱动程序url-
--driver-url spark://CoarseGrainedScheduler@X.X.X.X:7000
The X.X.X.X is the container IP.
All workers binds to container's IP (like 172.17.0.45), which cannot be
connected to and from master or driver.
If i set it to Docker Host's IP, It fails as that IP is not visible within the container,
but would be reachable by others as port-forwarding is configured.
我错过了什么?还有其他属性需要设置吗?它是Spark Standalone cluster,不是吗?您如何提交spark申请?spark submit的日志中有什么内容?当你说“它挂起”时,(spark submit和workers的)日志中有什么?@JacekLaskowski Hi,感谢你的快速响应,我没有使用spark submit,我正在运行一个带有spark依赖项的着色jar。我所说的“挂起”是指操作不会返回任何结果。在检查主机的日志时,当我用docker主机的IP设置SPARK\u PUBLIC\u DNS时,执行者正在连接和断开连接,但是如果我用docker容器IP设置SPARK.driver.bindAddress,用docker主机的IP设置SPARK.driver.Host,它会失败,并出现16次maxPortRetries错误。@Kiba,你解决了这个问题吗?