最近上面想要通过flink-cdc来实现mysql数据实时同步至Elasticsearch,由于可以通过sql来实现数据同步,难度和投入都相对较小。于是自己研究了下flink,由于flink-cdc 现在最高支持flink1.13的版本,所有本文使用1.13.5的版本演示部署flink集群。

flink大数据框架,官方推荐了三种集群模式:

1.standalone

2.kubernetes

3.YARN

本文通过standlone+zookeeper构建flink HA Service

项目环境:

操作系统均为ubuntu20.1

master 192.168.1.101
worker1 192.168.1.102
worker2 192.168.1.103

软件版本:

flink flink-1.13.5
zookeeper apache-zookeeper-3.5.9-bin.tar.gz

官方推荐jdk是8或者11

jdk openjdk-11.0.2_linux-x64_bin.tar.gz

1.所有的主机安装好jdk

tar xf openjdk-11.0.2_linux-x64_bin.tar.gz -C /usr/local/
cd /usr/local
mv jdk-11.0.2 jdk
echo "export JAVA_HOME=/usr/local/jdk">>/etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin'>>/etc/profile
source /etc/profile 
java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

2.做免密登录(重要的步骤)

由于大部分人都会做免密所以不在阐述详细的步骤。

3.安装zookeeper

3.1master主机上安装zookeeper

mkdir -p /data/zookeeper
echo 1 > /data/zookeeper/myid
tar xf apache-zookeeper-3.5.9-bin.tar.gz -C /data/
cd /data/apache-zookeeper-3.5.9
cp zoo_sample.cfg zoo.cfg
sed -i "s/tmp/data/" zoo.cfg
echo "server.1=192.168.1.101:2888:3888" >> zoo.cfg
echo "server.2=192.168.1.102:2888:3888" >> zoo.cfg
echo "server.3=192.168.1.103:2888:3888" >> zoo.cfg

3.2worker1上安装zookeeper

mkdir -p /data/zookeeper
echo 2 > /data/zookeeper/myid
tar xf apache-zookeeper-3.5.9-bin.tar.gz -C /data/
cd /data/apache-zookeeper-3.5.9
cp zoo_sample.cfg zoo.cfg
sed -i "s/tmp/data/" zoo.cfg
echo "server.1=192.168.1.101:2888:3888" >> zoo.cfg
echo "server.2=192.168.1.102:2888:3888" >> zoo.cfg
echo "server.3=192.168.1.103:2888:3888" >> zoo.cfg

3.3worker2上安装zookeeper

mkdir -p /data/zookeeper
echo 3 > /data/zookeeper/myid
tar xf apache-zookeeper-3.5.9-bin.tar.gz -C /data/
cd /data/apache-zookeeper-3.5.9
cp zoo_sample.cfg zoo.cfg
sed -i "s/tmp/data/" zoo.cfg
echo "server.1=192.168.1.101:2888:3888" >> zoo.cfg
echo "server.2=192.168.1.102:2888:3888" >> zoo.cfg
echo "server.3=192.168.1.103:2888:3888" >> zoo.cfg

zookeeper的配置文件如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181
server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888

3.4依次启动三个节点上的zookeeper

cd /data/apache-zookeeper-3.5.9-bin
./bin/zkServer.sh --config conf start

4.安装flink(切记三个主机上的flink的安装路劲需要一致,推荐全部安装在/opt这个目录,如果是云服务器推荐安装在data目录)

4.1三个节点上面依次执行下面命令。

tar xf flink-1.13.5-bin-scala_2.12.tgz -C /data/
echo "192.168.1.101:8081" > /data/flink-1.13.5/conf/master
echo -e "192.168.1.102\n192.168.1.103" > /data/flink-1.13.5/conf/worker

4.2 请保证三台服务器的配置文件如下。

jobmanager.rpc.address: 192.168.1.101
jobmanager.rpc.port: 6123
jobmanager.memory.process.size: 8600m
taskmanager.memory.process.size: 8728m
taskmanager.numberOfTaskSlots: 32
parallelism.default: 1
high-availability: zookeeper
high-availability.storageDir: file:///flink_store/recovery
high-availability.zookeeper.quorum: 192.168.1.101:2181,192.168.10.102:2181,192.168.1.103:2181
state.backend: filesystem
state.checkpoints.dir: file:///flink-checkpoints
state.savepoints.dir: file:///flink-savepoints
state.backend.incremental: true
execution.checkpointing.interval: 100
jobmanager.execution.failover-strategy: region
taskmanager.memory.network.min: 64mb
taskmanager.memory.network.max: 1gb

请注意/flink_store/recovery, /flink-checkpoints,/flink-savepoints都是nfs挂载目录。

在master上执行:

cd /data/flink-1.13.5
./bin/start-cluster.sh

为了简化操作,提供一个简易功能不完全的shell脚本

#!/bin/bashcur_dir=`dirname $0`
root_dir=`cd $cur_dir|pwd`
echo $root_dir
source /etc/profile
flink_tar=flink-1.13.5-bin-scala_2.12.tgz
flink_dir=flink-1.13.5
zookeeper_tar=apache-zookeeper-3.5.9-bin.tar.gz
zookeeper_dir=apache-zookeeper-3.5.9-bin
nfs_host= #你的nfs服务器
master=$1
host2=$2
host3=$3
id=$4function jdk_install(){java -version > /dev/nullif [ $? -ne 0 ];thencd $root_dirtar xf openjdk-11.0.2_linux-x64_bin.tar.gz -C /usr/local/cd /usr/localmv jdk-11.0.2 jdkecho "export JAVA_HOME=/usr/local/jdk">>/etc/profileecho 'export PATH=$PATH:$JAVA_HOME/bin'>>/etc/profile fi
}function flink_install(){cd $root_dirtar xf $flink_tar -C /data/cp flink-sql-connector-elasticsearch6_2.11-1.13.5.jar /data/$flink_dir/lib/cp flink-sql-connector-mysql-cdc-2.1.1.jar /data/$flink_dir/lib/sed -i -e "s/{master}/${master}/g" -e "s/{host2}/${host2}/" -e "s/{host3}/${host3}/" flink-conf.yamlcp -f flink-conf.yaml /data/$flink_dir/conf/echo "${master}:8081" >> /data/$flink_dir/conf/masterecho "${host2}:8081" >> /data/$flink_dir/conf/masterecho "${host2}" >> /data/$flink_dir/conf/workerecho "${host3}" >> /data/$flink_dir/conf/worker
}function zookeeper_install(){cd $root_dirtar xf $zookeeper_tar -C /data/cd /data/$zookeeper_dir/confmkdir /data/zookeeperecho $id > /data/zookeeper/myidcp zoo_sample.cfg zoo.cfgecho "server.1=${master}:2888:3888" >> zoo.cfgecho "server.2=${host2}:2888:3888" >> zoo.cfgecho "server.3=${host3}:2888:3888" >> zoo.cfgsed -i "s/tmp/data/" zoo.cfg
}function mount_nfs(){apt install -y nfs-commonmkdir /flink_jobmkdir /flink_storemkdir /flink-checkpointsmkdir /flink-savepointsecho "${nfs_host}:/flink/flink_job         /flink_job nfs4 rw  0 0" >> /etc/fstabecho "${nfs_host}:/flink/flink-checkpoints /flink-checkpoints nfs4 rw 0 0" >> /etc/fstabecho "${nfs_host}:/flink/flink-savepoints /flink-savepoints nfs4 rw 0 0" >> /etc/fstabecho "${nfs_host}:/flink/flink_store /flink_store/  nfs4 rw 0 0" >> /etc/fstabmount -a
}if [ -z $master ];thenexit
fi
if [ -z $host2 ];thenexit
fi
if [ -z $host3 ];thenexit
fi
if [ -z $4 ];thenexit
fi
jdk_install
flink_install
zookeeper_install
mount_nfs

了解更多关于flink和flink-cdc:

flink: Docs | Apache Flink

flink-cdc: Welcome to Flink CDC — Flink CDC documentation

flink-standalone部署。相关推荐

  1. Flink Standalone部署模式

    独立模式(Standalone)是部署 Flink 最基本也是最简单的方式: 所需要的所有 Flink 组件, 都只是操作系统上运行的一个 JVM 进程. 独立模式是独立运行的, 不依赖任何外部的资源 ...

  2. flink StandAlone 单机部署

    1 背景 就一台服务器,想部署flink 技术选型为 flink standalone 2 操作步骤 2.1 下载部署包 Apache Flink: Downloads 版本选择 1.11.1 wge ...

  3. 2021年大数据Flink(三):​​​​​​​Flink安装部署 Local本地模式

    目录 Flink安装部署 Local本地模式 原理 操作 测试 Flink安装部署 Flink支持多种安装模式 - Local-本地单机模式,学习测试时使用 - Standalone-独立集群模式,F ...

  4. flink Standalone模式部署

    部署前环境准备(基本的环境变量配置这里就不赘述了) jdk8和flink-1.14.0-bin-scala_2.12我这里准备了四台服务器,分别为node100~node103将安装包上传至各个服务器 ...

  5. Flink Standalone 集群部署

    Flink 支持使用多种部署模式来满足不同规模应用的需求,常见的有单机模式,Standalone Cluster 模式,同时 Flink 也支持部署在其他第三方平台上,如 YARN,Mesos,Doc ...

  6. Flink Standalone模式HA部署

    Standalone Cluster HA 前面我们配置的 Standalone 集群实际上只有一个 JobManager,此时是存在单点故障的,所以官方提供了 Standalone Cluster ...

  7. Flink分布式standalone部署方式(第二种方式)

    接着上面一节中介绍的,浏览器中输入地址http://swarm-manager:8088/cluster,输出如下: 拿到application_1569070146084_0001,然后在控制台先k ...

  8. Flink分布式standalone部署方式(第一种方式)

    提前准备 java 版本 1.8.0_101 flink 版本 flink-1.8.2-bin-scala_2.11.tgz hadoop 版本 hadoop-2.8.5.tar.gz flink-h ...

  9. Flink standalone配置(血汗注意事项,哭唧唧)

    虚拟机请使用VMware15,win10不支持VMware14,会在导入文件时卡死 JDK,flink环境都要配,环境变量如何修改请自行搜索,记得最后source /etc/profile stand ...

  10. Flink 怎么部署安装?

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

最新文章

  1. zabbix 进阶(二)
  2. teamviewer 无法连接 原因未知
  3. windows 3.x编程指南_18000 MHz 可编程衰减器
  4. Matplotlib实例教程 | 句子长度累积分布函数图
  5. mongodb创建用户
  6. php 7.2 安装 mcrypt 扩展(亲测)
  7. Linux命令行中的特殊符号_特殊字符
  8. jQuery基础,javascript
  9. 如何为报表服务器设置SQL Server数据库复制
  10. 国内常见的14款低代码平台介绍
  11. 中文版的XP转换为英文版的XP和XP多国语言包
  12. 2019年成都房产新政,有这些内容需注意
  13. JADE(Java Agent Development Framework)笔记
  14. Unity背包系统(二)背包UI设计
  15. 引谈 | 世界上第一个(真正的)私人家庭安全摄像头诞生!
  16. 前端异常监控平台对比
  17. 统信桌面操作系统V20专业版(1021)发布:稳定又好用
  18. SVN版本回滚——反响合并
  19. JS内存问题:栈和堆
  20. 传统存储将被颠覆:五年内SSD将取代机械硬盘

热门文章

  1. 比尔·盖茨的 33 年及名言集锦 - 为比尔送行、鼓掌!
  2. 互联网之子Aaron Swart----技术金字塔上的刀锋
  3. C语言共用体(C语言union用法)详解
  4. (附源码)ssm华立学院门户网站 毕业设计 290011
  5. GetCurrentProcess()方法进程资源查询实例
  6. 服务器系统版本,2018 年 4 月 17 日 - KB4093120(操作系统内部版本 14393.2214)
  7. 刹车制动(卡钳)TOP3供应商份额超50%,哪些本土供应商突围
  8. opencv基于ycrcb的皮肤检测(改进版)
  9. 黑客二三事:熊猫烧香其实不入流
  10. Gentoo的安装全过程