使用Docker搭建Flink集群
在学习大数据框架的时候,需要一个真实的环境。我们知道,像spark、flink这些计算框架都有多种运行模式:
- 在本地使用多线程模拟集群
- 真正的分布式集群
如果直接在IDE(Intellj)里面编译和运行写好的程序,实际上是用的前一种运行模式;如果想尝试真正的生产环境中任务的提交和管理,则需要搭建一个Flink集群。
很多教程在搭建集群的时候使用的是虚拟机(Ubuntu或者CentOS),这样开销比较大,因此选择docker容器化部署的方式搭建。
docker-compose一键搭建
在参考了网上的资料以及走了很多弯路之后(用docker一个个自己搭建,出了很多问题;以及用homebrew安装失败;docker开一个centos,里面套娃安装docker也不行),发现目前最简单的方式应该就是docker-compose了,步骤如下:
步骤
(1)安装docker(如果是PC,可以直接安装桌面版docker,省事;如果是服务器,根据系统不同用yum或者apt)
# example: CentOS
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
(2)安装docker-compose,我安装的是桌面版的,这个一起安装了
(3)使用docker pull下载镜像,镜像名是flink,tag是1.14.4-scala_2.12-java8,镜像可以去docker hub上直接搜索
docker pull flink:1.14.4-scala_2.12-java8
(4) -compos编写dockere.yml
version: "3.7"
services:
FlinkJobManager: # define the job manager service
image: flink:1.14.4-scala_2.12-java8
container_name: FlinkJobManager
hostname: FlinkJobManager
expose:
- "6123"
ports:
- "8081:8081" # map port 8081 of container to port 8081 of localhost
command: jobmanager