Exo*_*imp 6 docker apache-spark dockerfile
我在通过 Docker Compose 创建的容器内运行 Apache Spark。创建工作程序时,我指定主机(我的笔记本电脑)上的哪个端口映射到8081工作程序上的 Web UI 端口。对于 1 个容器,这工作正常,因为我可以绑定8081:8081并且容器化的 Spark Master Web UI 正确链接到localhost:8081.
问题是,当我通过 缩放工作人员数量时docker-compose scale worker=3,我无法在 my 中指定主机上的端口docker-compose.yml,因为缩放会发生冲突。
我尝试过使用动态端口映射,但这会导致转发到工作端口 8081 的主机端口类似于 32XXX,但 Spark Master WebUI 链接仍会假设工作人员 WebUI 位于端口 8081 上,这意味着所有链接都不起作用。
有没有办法在不发生端口冲突的情况下扩展我的容器
我的相关部分docker-compose.yml:
worker:
image: gettyimages/spark
command: bin/spark-class org.apache.spark.deploy.worker.Worker
spark://master:7077
hostname: worker
environment:
SPARK_CONF_DIR: /conf
SPARK_WORKER_CORES: 2
SPARK_WORKER_MEMORY: 1g
SPARK_WORKER_PORT: 8881
SPARK_WORKER_WEBUI_PORT: 8081
SPARK_PUBLIC_DNS: localhost
links:
- master
- cassandra
- kafka
expose:
- 7012
- 7013
- 7014
- 7015
- 7016
- 8881
ports:
- 8081 # dynamic port binding. ends up being 32XXX:8081
# - 8081:8081 only works with 1 container
Run Code Online (Sandbox Code Playgroud)
是否可以通过SPARK_PUBLIC_DNScompose 文件中的 或 动态变量替换来完成某些操作?
| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |