dockercompose部署spark
时间: 2025-03-27 14:01:14 浏览: 33
### 使用 Docker Compose 部署 Spark 集群的最佳实践
#### 准备工作
为了成功部署 Spark 集群,需确保本地已安装 Docker 和 Docker Compose 工具。这些工具允许用户通过单一命令启动多个互联的容器化服务[^3]。
#### 编写 `docker-compose.yml` 文件
创建一个名为 `docker-compose.yml` 的文件,在该文件中定义所需的服务组件及其配置:
```yaml
version: '3'
services:
namenode:
image: bde2020/hadoop-namenode:2.0.0-hadoop3.2.1
container_name: namenode
ports:
- "9870:9870"
- "8020:8020"
environment:
- CLUSTER_NAME=test
volumes:
- hadoop_namenode:/data
datanode:
image: bde2020/hadoop-datanode:2.0.0-hadoop3.2.1
container_name: datanode
depends_on:
- namenode
environment:
SERVICE_PRECONDITION: "namenode:9870"
volumes:
- hadoop_datanode:/hadoop/dfs/data
spark-master:
image: bitnami/spark:latest
container_name: spark-master
ports:
- "8080:8080"
- "7077:7077"
environment:
SPARK_MODE: master
SPARK_MASTER_HOST: spark-master
SPARK_RPC_AUTHENTICATION_ENABLED: no
SPARK_RPC_ENCRYPTION_ENABLED: no
SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED: no
SPARK_SSL_ENABLED: no
depends_on:
- namenode
- datanode
spark-worker-1:
image: bitnami/spark:latest
container_name: spark-worker-1
environment:
SPARK_MODE: worker
SPARK_WORKER_MEMORY: 1G
SPARK_WORKER_CORES: 1
SPARK_MASTER_URL: spark://spark-master:7077
SPARK_RPC_AUTHENTICATION_ENABLED: no
SPARK_RPC_ENCRYPTION_ENABLED: no
SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED: no
SPARK_SSL_ENABLED: no
depends_on:
- spark-master
volumes:
hadoop_namenode:
hadoop_datanode:
```
上述配置描述了一个基本的 HDFS 及 Spark 主从架构集群设置,其中包含了 NameNode, DataNode, Spark Master 节点以及至少一个 Worker 节点[^5]。
#### 启动集群
完成 `docker-compose.yml` 文件编写后,在同一目录下执行如下命令来启动整个集群:
```bash
$ docker-compose up -d
```
这将会以后台模式启动所有指定的服务实例,并自动处理各服务间的依赖关系[^4]。
#### 访问 Web UI 接口
一旦集群正常运行起来之后,可以访问以下 URL 来查看各个组件的状态页面:
- **NameNode**: http://localhost:9870/
- **Spark Master**: http://localhost:8080/
以上链接提供了图形化的界面让用户能够监控集群健康状况、作业进度等重要信息[^1]。
阅读全文
相关推荐


















