SPARK 的docker伪分布式部署
参考资料
https://www.jianshu.com/p/d6a406da3cba
首先安装docker
或者参考https://www.runoob.com/docker/ubuntu-docker-install.html 使用docker官方提供的脚本一键安装就好了(ubuntu的其他系统应该有类似的)(下面的步骤是centos的)
第一步卸载之前旧的版本,没装过不用做。
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
添加安装的源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker CE
yum install docker-ce docker-ce-cli containerd.io
启动docker服务
systemctl start docker
docker run hello-world # 检测
换镜像源,这个根据需要把,需要加速服务
vim /etc/docker/daemon.json 修改这个文件即可
后面搭建spark集群是需要在docker中建立一个网络的,用来使docker之间通信,不然工作节点是找不到的。
vim /etc/sysctl.conf
# 新增一条:net.ipv4.ip_forward=1
systemctl restart network # 重启网络
sysctl net.ipv4.ip_forward # 验证配置
docker network create spark_network # 创建一个网络
搭建SPARK
目前看到的搭建的教程都是讲如何从基础镜像开始构建,在网上看到一个Git项目有已经写好的dockerfile和运行脚本,只需要下载下来然后修改一下即可。
项目中分为
- base
- master
- submit
- worker
- template
几个文件夹,这些都是为了构建一些基础的镜像模板的。我们只要构建相应的镜像,就可以启动master和worker容器,以达到构建集群的集群的目的。
换句话说,这个项目就是,先构建一个安装有hadoop,spark等的基础镜像。然后根据master和worker的要求编写配置文件,和启动脚本,再分别捆绑到基础镜像上形成新的镜像,当要启动的时候,只要基于镜像启动容器即可,这样可以很方便的增加worker机器的数量。
所以如果我们依据自己的需求更改的时候,只需要更改Dockerfile和启动脚本即可。
那么现在先看看base的Dockerfile
# base
FROM alpine:3.10
LABEL maintainer="Gezim Sejdiu <g.sejdiu@gmail.com>, Giannis Mouchakis <gmouchakis@gmail.com>" # 自己构建的话可以去掉这个标签
# 设置容器中的环境变量