linux运维、架构之路-Flink集群部署

一、介绍

         Flink 是一个开源的分布式流式处理框架,Flink标准的实时处理引擎。用于在无边界和有边界数据流上进行有状态的计算。

  • 提供准确的结果,甚至在出现无序或者延迟加载的数据的情况下。
  • 它是状态化的容错的,同时在维护一次完整的的应用状态时,能无缝修复错误。
  • 大规模运行,在上千个节点运行时有很好的吞吐量和低延迟。

二、特性

  • Flink灵活的窗口。
  • Exactly once语义保证。

三、Flink集群部署

1、前置条件

  • 配置从master到worker节点的SSH无密登录,并保持保节点上相同的目录结构。
  • Flink要求在主节点和所有工作节点上设置JAVA_HOME环境变量,并指向Java安装的目录。

①配置SSH免秘钥

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.175 #Master
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.176 #worker1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.182 #worker2

②配置JAVA环境变量(所有节点)

vi ~/.bash_profile
export JAVA_HOME=/app/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bash_profile

2、下载Flink安装包

官方地址:https://flink.apache.org/downloads.html

wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.12.2/flink-1.12.2-bin-scala_2.11.tgz

①解压软件

tar xf flink-1.12.2-bin-scala_2.11.tgz -C /app/
#修改配置文件:
[root@k8s-node1 conf]# egrep -v "#|^$" flink-conf.yaml 
env.java.home: /app/jdk1.8.0_181       # 配置java环境
jobmanager.rpc.address: 192.168.56.175 # 配置主节点主机名,指向master节点
jobmanager.rpc.port: 6125 
jobmanager.memory.process.size: 1600m  #定义允许JVM在每个节点上分配的最大主内存量
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 4       #你希望每台机器能并行运行多少个slot, 机器上一个核可以运行一个slot
parallelism.default: 4                 #整个集群最大的可并行度,slave的节点数*节点cpu核数
jobmanager.execution.failover-strategy: region 
rest.port: 8081                        #UI页面访问端口

修改文件/conf/masters、worekers文件

[root@k8s-node1 conf]# cat masters 
192.168.56.175:6125
[root@k8s-node1 conf]# cat workers 
192.168.56.176
192.168.56.182

②分发修改后的文件

scp -rp flink-1.12.2 192.168.56.176:/app/
scp -rp flink-1.12.2 192.168.56.182:/app/

3、启动集群(只需要在主节点启动即可)

[root@k8s-node1 app]# /app/flink-1.12.2/bin/start-cluster.sh 
Starting cluster.
Starting standalonesession daemon on host k8s-node1.
Starting taskexecutor daemon on host k8s-node2.
Starting taskexecutor daemon on host k8s-node3.
[root@k8s-node1 app]# jps
25673 Jps
25453 StandaloneSessionClusterEntrypoint

节点查看:

[root@k8s-node2 ~]# jps
10458 TaskManagerRunner
11020 Jps

4、页面访问

 ①创建一个Flink自带的流处理程序

./bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname 192.168.56.175 --port 9000

 

posted @ 2021-03-29 16:45  闫新江  阅读(639)  评论(0编辑  收藏  举报