spark-submit
为了运行作业,似乎需要与远程 Spark 集群进行双向通信。
在机器之间配置起来很容易(从 10.xxx 到 10.xxx 再返回),但是当 Docker 添加额外的网络层时(从 172.xxx 到 10.xxx 再到 10.xxx,然后以某种方式回到 172.xxx 再到 10.xxx),就会变得混乱。
Spark为客户端增加了额外的复杂性SPARK_LOCAL_IP
及其配置参数。SPARK_LOCAL_HOSTNAME
应如何配置 Docker 网络以实现这一点?
答案1
您可以使用网络模式运行 docker 容器host
。在您的 compose 文件中添加以下配置:
services:
worker0:
container_name: container0
cpuset: 0-4
entrypoint: /entrypoint.sh
environment:
- SPARK_MASTER=10.34.221.247
- RAM=16g
- NUM_WORKERS=5
- SHUFFLE_PORT=7338
expose:
- 7000-64000
image: 10.47.7.214/spark-worker
mem_limit: 16g
network_mode: bridge
tty: true
不过,我仍然面临此配置的问题。作业正常启动,但最终 docker 驱动程序无法连接到执行程序。您至少可以尝试一下。