前言
这里解释下 题目中的 docker-compose,这其实是docker提供的一种命令行工具,用来定义和运行由多个容器组成的应用,初一看,这句有点不好理解,那先不着急,我先列一个场景,现在有一个需求是,用docker完成 一个应用A的部署,且这个应用A需要依赖多个应用A1、A2、A3....才能正常运行,而且多个应用的部分配制还要能灵活的配制,..说到这,你是不是有点头痛了,如果用常规的docker 部署显示非常麻烦。。。。这时候如果用docker-compose来做,就显得十分容易且轻松,下面就介绍具体部署过程
一、安装docker-compose
1、安装pip
sudo apt-get install python-pip
2、确认pip版本
sudo pip --version
3、更新pip
sudo apt-get pip install --upgrade pip
4、安装docker-compose
sudo apt-get pip install docker-compose
5、查看dcoker-compose版本
docker-compose version
二、安装spark集群
注: 此操作前请切换到root用户,因为下面的所有命令都是基于root下的操作,并创建
/spark-need/docker-compose-conf 目录,后面所有操作都在此目录下进行(你们也可以创建一个其它文件夹,自己喜欢就好)
1、下载spark镜像
docker search spark
选择singularities/spark 这个, 这个比较小,好用
下载镜像
docker pull singularities/spark
查看镜像
docker images
已经成功下载
2、创建docker-compose.yml配制文件
文件内容如下
version: "2"
services:
master:
image: singularities/spark
command: start-spark master
hostname: master
ports:
- "6066:6066"
- "7070:7070"
- "8080:8080"
- "50070:50070"
worker:
image: singularities/spark
command: start-spark worker master
environment:
SPARK_WORKER_CORES: 1
SPARK_WORKER_MEMORY: 2g
links:
- master
具体配制解释请点击 docker-compose.yml 的详细解释与说明
3、启动集群
docker-compose up -d
3、查看集群
docker-compose ps
注:ports下有很多端口,部分端口的解释是
50070:HDFSwebUI的端口号
9000:非高可用访问数rpc端口
8080:sparkwebUI的端口号
8081:worker的webUI的端口号
7077:spark基于standalone的提交任务的端口号
4、访问 spark 和hadoop的webUI
访问http://IP:50070 HDFSwebUI的端口号 本例子对应的 http://192.168.153.130/50070
访问http://IP:8080 sparkwebUI的端口号 本例子对应的 http://192.168.153.130/8080
到此,说明spark的集群已经成功运行起来了