mysql 流计算_流式计算(三)-Flink Stream 篇一

本文介绍了使用Flink进行流计算的全过程,包括Zookeeper集群、Kafka集群、Flink Standalone集群的部署,以及Flink流计算程序设计,涉及到的数据传输与存储涉及Kafka和MySQL。通过实战,展示了Flink作为流处理框架的强大能力。
摘要由CSDN通过智能技术生成

流的世界,有点乱,群雄逐鹿,流实在太多,看完这个马上又冒出一个,也不知哪个才是真正的牛,据说Flink是位重量级选手,能流计算,还能批处理,和其他伙伴关系也融洽的很,与HDFS/File/SQL/MQ往来都不在话下,今天我们就来实战一把。

环境:Idea2019.03/Gradle6.0.1/JDK11.0.4/Lambda/RHEL8.0/VMWare15.5/Springboot2.2.1.RELEASE/Mysql8.0.11/Kafka2.3.1/ShadowJar5.0/Flink1.9.1/Zookeeper3.5.5

难度:新手--战士--老兵--大师

目标:

Zookeeper集群部署

Kafka集群部署及AdminClient使用

Flink Standalone集群部署

Flink流计算程序设计

说明:

为了遇见各种问题,同时保持时效性,我尽量使用最新的软件版本。同时代码中大量使用注释,并尽量使用非链式写法,层次清晰。

第一部分 部署图

1.1 整体部署图,注意本次我没使用Flink的HA模式,故只有一个Master节点:

2401

本次实现的整体逻辑:Java应用产生流数据,用kafka进行传输,在Flink中进行流计算,最后存储到文件和Mysql中:

90e0b755284ee737feb8d0a23620aa8e.png

2402

第二部分 zk集群

2.1 Zookeeper(简写ZK)集群安装:我分别部署ZK到192.168.1.221,192.168.1.222,192.168.1.223 linux虚机上,这里只说一台,其他类似,下载apache-zookeeper-3.5.5-bin.tar.gz,解压到目录/usr/zookeeper3.5/apache-zookeeper-3.5.5-bin/修改ZK配置文件:

[root@localhost ~]# vim /usr/zookeeper3.5/apache-zookeeper-3.5.5-bin/conf/zoo.cfg

dataDir=/usr/zookeeper3.5/data

dataLogDir=/usr/zookeeper3.5/logs

#added for ZK cluster

server.1=192.168.1.221:2888:3888

server.2=192.168.1.222:2888:3888

server.3=192.168.1.223:2888:3888

zk相关配置项说明:(LF指Leader/Follower)

66c7c859435d08dec71545effe38671a.png

2403

打开firewall端口:

[root@localhost zookeeper3.5]# firewall-cmd --permanent --add-port=2181/tcp

[root@localhost zookeeper3.5]# firewall-cmd --permanent --add-port=2888/tcp

[root@localhost zookeeper3.5]# firewall-cmd --permanent --add-port=3888/tcp

[root@localhost zookeeper3.5]# firewall-cmd –reload

创建myid文件,也可使用touch或vim创建:

[root@localhost ~]# echo "2" > /usr/zookeeper3.5/data/myid

启动:

[root@localhost ~]# sh /usr/zookeeper3.5/apache-zookeeper-3.5.5-bin/bin/zkServer.sh start

5fda75ba6285971a5624c5847fc42cd8.png

2404

查看节点角色:

[root@localhost ~]# sh $ZOOKEEPER_HOME/bin/zkServer.sh status

ea1a1e8c4d72beeb5a99b22484afd9e8.png

2405

说明:

be9aa617997d6d3ff79d525310e16f7f.png

2406

使用zkCli测试节点间连接,我在192.168.1.221上访问192.168.1.222:

[root@localhost ~]# sh $ZOOKEEPER_HOME/bin/zkCli.sh -server 192.168.1.222:2181

add5e84c9a495f1fbb50faa0f6272c4a.png

2407

第三部分 Kafka集群

3.1 Kafka集群,参考上一篇,这里以192.168.1.223为例,其他类似,修改/usr/kafka2.3/kafka_2.12-2.3.1/config/server.properties:

broker.id=2 #集群内此编号必须唯一

listeners=PLAINTEXT://192.168.1.223:9092 #Socket监听地址,没写hostname/IP即为listen所有IP

log.dirs=/usr/kafka2.3/kafka-logs #kafka保存log目录

zookeeper.connect=192.168.1.221:2181,192.168.1.222:2181,192.168.1.223:2181 #ZK注册地址

注意开启kafka的访问端口,否则APP无法访问:

[root@localhost ~]# firewall-cmd --permanent --add-port=9092/tcp

[root@localhost ~]# firewall-cmd –reload

再分别启动kafka:

[root@server223 kafka_2.12-2.3.1]# ./bin/kafka-server-start.sh config/server.properties

第四部分 Flink集群

4.1 Flink基础知识,因篇幅原因,略!

4.2 Flink Standalone集群(一个master多个worker)部署:必须先安装SSH,使得各集群节点机器间无密码进行SSH访问,并必须使用相同的flink安装目录结构,因master节点通过SSH使用脚本控制worker节点。Flink集群还有HA模式,即多个Master节点和多个worker节点,Master节点中一个为leader,其他Master节点为standby,故障时standby就转换为leader角色。

4.3 SSH开通:

我这里192.168.1.222为master,192.168.1.221/223为worker, 222到223的SSH,222到221的SSH类似,如linux上没有SSH,需先安装该service。以下为222到221的SSH开通,在222上:

[root@localhost ~]# ssh-keygen

[root@localhost ~]# ssh-copy-id 192.168.1.221

[root@localhost ~]# vim /etc/ssh/sshd_config

PasswordAuthentication no

[root@localhost ~]# systemctl restart sshd

[root@localhost ~]# ssh 192.168.1.221

[root@localhost ~]# exit

logout

Connection to 192.168.1.221 closed.

4.4 Flink安装:我下载的是编译后版本:flink-1.9.1-bin-scala_2.12.tgz,解压后在/usr/flink1.9/flink-1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值