内网基于docker部署flink1.13.6 CDC、zeppelin0.10.1、flink-sql-cookbook-on-zeppelin
- 1、基础环境
- 2、部署步骤
- 2.1 docker安装
- 2.2 拷贝docker镜像至内网
- 2.2.1 外网机器下载所有需要镜像
- 2.2.2 外网机器镜像检查
- 2.2.3 外网机器镜像打包
- 2.2.4 拷贝至内网
- 2.2.5 内网加载镜像
- 2.3 下载flink-sql-cookbook-on-zeppelin
- 2.4 docker-compose文件
- 2.5 内网运行
- 2.6 访问验证
- 2.6.1 查看运行的容器
- 2.6.2 web页面验证
- 2.7 部署cdc及其依赖的jar包
- 2.7.1 jar包下载
- 2.7.2 jar包上传服务器
- 2.7.3 jar包上传docker
- 2.7.4 flink的python包拷贝
- 2.7.5 拷贝flink文件夹至zeppelin
- 2.7.6 重启docker容器
- 2.8 zeppelin配置
- 2.8.1 flink环境配置
- 2.9 服务可用性验证
- 2.9.1 flink验证
- 2.9.2 Cookbook验证
- 3 结束
本文主要基于centos7单机、docker部署flink cdc和zeppelin,解决了cdc的jar包依赖。
1、基础环境
虚拟化服务器 32GB内存 500GB硬盘 16核
操作系统 centos 7
基础软件 docker
2、部署步骤
包含docker安装(略)、docker-compose文件编写、docker运行、CDC jar包部署、zeppelin运行测试。
2.1 docker安装
请参见互联网相关文献。
2.2 拷贝docker镜像至内网
2.2.1 外网机器下载所有需要镜像
在外网机器运行以下命令
docker pull apache/zeppelin:0.10.1
docker pull flink:1.13.6-scala_2.12-java8
2.2.2 外网机器镜像检查
在外网机器运行以下命令
docker images
应该看到2.2.1中的镜像
2.2.3 外网机器镜像打包
在外网机器运行以下命令
docker save -o apache_zeppelin_0.10.1.tar apache/zeppelin:0.10.1
docker save -o flink_1.13.6-scala_2.12-java8.tar flink:1.13.6-scala_2.12-java8
2.2.4 拷贝至内网
将2.2.3中的tar包转递至内网服务器
2.2.5 内网加载镜像
在内网服务器执行以下命令
docker load -i apache_zeppelin_0.10.1.tar
docker load -i flink_1.13.6-scala_2.12-java8.tar
6.内网镜像查看
在内网服务器执行以下命令
docker images
应看到导入的镜像
顺便执行以下命令,为下边步骤创建相关目录
mkdir /opt/flink1136_cdc/
mkdir /opt/flink1136_cdc/flink
mkdir /opt/flink1136_cdc/jars
echo 'Asia/Shanghai' > /etc/timezone/timezone
2.3 下载flink-sql-cookbook-on-zeppelin
在外网机器执行下面命令,下载cookbook
git clone https://github.com/zjffdu/flink-sql-cookbook-on-zeppelin.git
拷贝flink-sql-cookbook-on-zeppelin文件夹至内网服务器的/opt/flink1136_cdc目录下
2.4 docker-compose文件
将下述代码复制为docker-compose.yml文件,拷贝至内网机器的/opt/flink1136_cdc/目录下。
本文件包含1个flink jobmanager实例、3个flink taskmanager 实例、1个zeppelin示例,并映射了系统的时区,解决docker镜像时区与宿主机器时区不一致的问题。
version: "2.1"
services:
jobmanager:
image: flink:1.13.6-scala_2.12-java8
expose:
- "6123"
ports:
- "8081:8081"
command: jobmanager
volumes:
- /etc/timezone/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
- JAVA_OPTS=-XX:MetaspaceSize=128m -XX:MaxM
taskmanager1:
image: flink:1.13.6-scala_2.12-java8
expose:
- "6121"
- "6122"
depends_on:
- jobmanager
command: taskmanager
volumes:
- /etc/timezone/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
links:
- "jobmanager:jobmanager"
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
taskmanager2:
image: flink:1.13.6-scala_2.12-java8
expose:
- "6121"
- "6122"
depends_on:
- jobmanager
command: taskmanager
volumes:
- /etc/timezone/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
links:
- "jobmanager:jobmanager"
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
taskmanager3:
image: flink:1.13.6-scala_2.12-java8
expose:
- "6121"
- "6122"
depends_on:
- jobmanager
command: taskmanager
volumes:
- /etc/timezone/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
links:
- "jobmanager:jobmanager"
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
zeppelin:
image: apache/zeppelin:0.10.1
ports:
- "8080:8080"
depends_on:
- jobmanager
volumes:
- /etc/timezone/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
# - /opt/flink1136_cdc/flink-sql-cookbook-on-zeppelin/Flink Sql Cookbook:/opt/zeppelin/notebook
- /opt/flink1136_cdc/flink:/flink
links:
- "jobmanager:jobmanager"
2.5 内网运行
在内网机器的/opt/flink1136_cdc/目录执行以下命令
cd /opt/flink1136_cdc
docker-compose up -d
2.6 访问验证
2.6.1 查看运行的容器
docker ps
命令结果应该如下:
flink1136_cdc-taskmanager3-1
flink1136_cdc-zeppelin-1
flink1136_cdc-taskmanager2-1
flink1136_cdc-taskmanager1-1
flink1136_cdc-jobmanager-1
2.6.2 web页面验证
访问 http://127.0.0.1:8080 和 http://127.0.0.1:8081 应看到相应的web页面
备注:127.0.0.1 需要改成docker服务器的ip地址、域名
2.7 部署cdc及其依赖的jar包
2.7.1 jar包下载
需要下载 flink-cdc-2.2、flink_connector包_1.13.6、及其依赖的jar包,本文已经打包为百度云链接,下载地址为
链接:https://pan.baidu.com/s/1j9_TtDm4dZEojK7ADyPy_Q?pwd=raji 提取码:raji
2.7.2 jar包上传服务器
发挥自己的能力,用各种工具上传到服务器的/opt/flink1136_cdc/jars/目录
2.7.3 jar包上传docker
对 2.6.1 中的各个docker容器运行以下命令(除zeppelin外,flink1136_cdc-taskmanager1-1 替换为 2.6.1中的docker容器名称)
##拷贝jar文件至flink的lib目录
for f in /opt/flink1136_cdc/jars/*jar; do docker cp $f flink1136_cdc-taskmanager1-1:/opt/flink/lib/; done
for f in /opt/flink1136_cdc/jars/*jar; do docker cp $f flink1136_cdc-taskmanager2-1:/opt/flink/lib/; done
for f in /opt/flink1136_cdc/jars/*jar; do docker cp $f flink1136_cdc-taskmanager3-1:/opt/flink/lib/; done
for f in /opt/flink1136_cdc/jars/*jar; do docker cp $f flink1136_cdc-jobmanager-1:/opt/flink/lib/; done
2.7.4 flink的python包拷贝
对 2.6.1 中的各个docker容器运行以下命令(除zeppelin外,flink1136-taskmanager3-1 替换为 2.6.1中的docker容器名称)
##拷贝python文件至flink的lib目录
docker exec -it flink1136_cdc-taskmanager1-1 /bin/bash
cp /opt/flink/opt/flink-python_2.12-1.13.6.jar /opt/flink/lib/
cp -r /opt/flink/opt/python /opt/flink/lib/python/
exit
docker exec -it flink1136_cdc-taskmanager2-1 /bin/bash
cp /opt/flink/opt/flink-python_2.12-1.13.6.jar /opt/flink/lib/
cp -r /opt/flink/opt/python /opt/flink/lib/python/
exit
docker exec -it flink1136_cdc-taskmanager3-1 /bin/bash
cp /opt/flink/opt/flink-python_2.12-1.13.6.jar /opt/flink/lib/
cp -r /opt/flink/opt/python /opt/flink/lib/python/
exit
docker exec -it flink1136_cdc-jobmanager-1 /bin/bash
cp /opt/flink/opt/flink-python_2.12-1.13.6.jar /opt/flink/lib/
cp -r /opt/flink/opt/python /opt/flink/lib/python/
exit
2.7.5 拷贝flink文件夹至zeppelin
在服务器中运行以下命令
##拷贝flink目录到zeppelin
docker cp flink1136_cdc-jobmanager-1:/opt/flink/ /opt/flink1136_cdc
拷贝cookbook到zeppelin
docker cp /opt/flink1136_cdc/flink-sql-cookbook-on-zeppelin/'Flink Sql Cookbook' flink1136_cdc-zeppelin-1:/opt/zeppelin/notebook/'Flink Sql Cookbook'
拷贝 flink-python-*.jar 到zeppelin的lib文件夹下
##拷贝 flink-python-*.jar 到zeppelin的lib文件夹下
docker exec -it -u root flink1136_cdc-zeppelin-1 /bin/bash
cp /flink/lib/flink-python_2.12-1.13.6.jar /opt/zeppelin/lib
cd notebook
chmod 777 *** -R
exit
docker restart flink1136_cdc-zeppelin-1
2.7.6 重启docker容器
docker-compose -f /opt/flink1136_cdc/docker-compose.yml restart
2.8 zeppelin配置
打开web页面 http://127.0.0.1:8080 即可看到zeppelin页面(启动需要时间,如未打开,可稍等2-3分钟)
2.8.1 flink环境配置
按照下图,配置flink的相关参数
2.9 服务可用性验证
2.9.1 flink验证
打开web页面 http://127.0.0.1:8080,最上主菜单栏选择“Notebook”>“Flink Tutorial”>“1.Flink Basics”,点击“Batch WordCount”的运行按钮,稍等可正常得到结果,则flink配置成功。
2.9.2 Cookbook验证
打开web页面 http://127.0.0.1:8080,最上主菜单栏选择“Notebook”>“Flink Sql Cookbook”>“Aggregations …”>“01 Aggregating …”,点击“Batch WordCount”的运行按钮,点击运行本页的全部代码,稍等可正常得到结果,则Cookbook配置成功。
3 结束
到此结束,有问题请留言。