目录
一、服务规划    
  1.1 Requirements list:    
  1.2 Server部署角色列表:    
  1.3 部署方式    
二、软件准备    
  1、 下载合适的Flink版本    
三、 安装flink    
  1、 创建my_admin用户    
  2、3节点两两免密配置    
  3、解压flink安装文件    
  4、hdfs支撑配置    
  5、 配置flink-conf.yaml核心配置文件    
  6、 配置masters文件    
  7、 配置slavers文件    
  8、 配置zoo.cfg文件    
  9、 变更flink-1.7.2目录的所属关系    
  10、 添加HADOOP_USER_NAME环境变量    
  11、 hdfs根路径下创建flink元数据存储路径       
  12、 拷贝node1节点安装文件至其他节点    
  13、其他节点修改flink-1.7.2目录属主关系    
四、 启动flink服务     
五、 检查flink服务    
  ①、查看JobManager进程    
  ②、查看TaskManager进程    
六、 使用flink web控制台    


一、服务规划

1.1 Requirements list:

No.

软件名

软件版本

软件位置

Flink直接依赖于此

1

jdk

1.8

/opt/jdk1.8.0_201

是,已安装

2

zookeeper

3.4.5

server11-11-11-11:2181,

server11-11-11-12:2181,

server11-11-11-13:2181,

server11-11-11-14:2181,

server11-11-11-15:2181

是,已安装在Hadoop集群中

3

flink

1.7.2

/opt/flink-1.7.2

4

 

 

 

 

 

1.2 Server部署角色列表:

No.

IP

Hostname

Usage

1

11.11.11.11

server11-11

StandaloneSessionClusterEntrypoint

2

11.11.11.22

server11-22

StandaloneSessionClusterEntrypoint
TaskManagerRunner

3

11.11.11.33

server11-33

TaskManagerRunner

 

1.3 部署方式

StandaloneCluster HA

其中:11.11.11.11(active)、11.11.11.22(standby)

 

二、软件准备

  1. 下载合适的Flink版本

Flink使用中不一定要使用hadoop生态组件,如果需要用hadoop组件,建议下载hadoop绑定版本安装包进行安装。

 

一般来说,flink的运行模式on yarn及checkpoint、savepoint等会用到hdfs,故hadoop绑定版本为安装首选。

基于之前数仓里已安装软件的匹配关系,这里选用如下版本:

flink-1.7.2-bin-hadoop26-scala_2.11

 

下载链接地址为:

https://www.apache.org/dyn/closer.lua/flink/flink-1.7.2/flink-1.7.2-bin-hadoop26-scala_2.11.tgz

 

在3台服务器上,执行:

curl https://www.apache.org/dyn/closer.lua/flink/flink-1.7.2/flink-1.7.2-bin-hadoop26-scala_2.11.tgz

 

如上指令下载flink。

三、安装flink

集群的启停均需用到ssh免密登陆到其他主机,ssh已修改默认端口号为2222。

1、创建my_admin用户

useadd -m my_admin

 

2、三节点两两免密配置

已my_admin身份登录到每台节点:

ssh-keygen -t rsa

 

每台节点上分发:

ssh-copy-id -p 2222 -i ~/.ssh/id_rsa.pub server11-11
ssh-copy-id -p 2222 -i ~/.ssh/id_rsa.pub server11-22
ssh-copy-id -p 2222 -i ~/.ssh/id_rsa.pub server11-33

 

3、解压flink安装文件

tar -xzvf flink-1.7.2-bin-hadoop26-scala_2.11.tgz

解压后,目录为:/opt/flink-1.7.2/conf

 

4、hdfs支撑配置

从线上将core-site.xml、hdfs-site.xml文件拷贝至conf目录下。

 

5、配置flink-conf.yaml核心配置文件

[my_admin@server11-11 conf]$ grep -Ev "^$|^[#;]" flink-conf.yaml

jobmanager.rpc.port: 6123
jobmanager.heap.size: 10g
taskmanager.heap.size: 10g
taskmanager.numberOfTaskSlots: 4
parallelism.default: 1
high-availability: zookeeper
high-availability.storageDir: hdfs:///flink/ha/
high-availability.zookeeper.path.root: /flink
high-availability.cluster-id: /flinkCluster
high-availability.zookeeper.quorum:
server11-11-11-11:2181,server11-11-11-12:2181,server11-11-11-13:2181,server11-11-11-14:2181,server11-11-11-15:2181
state.backend: filesystem
state.checkpoints.dir: hdfs:///flink/checkpoints
state.savepoints.dir: hdfs:///flink/checkpoints
rest.port: 8082
env.ssh.opts: -p 2222
env.hadoop.conf.dir: /opt/flink-1.7.2/conf/

后3行解释:

  • rest.port: web 运行时监视器端口
  • env.ssh.opts: 设置ssh端口号(默认为22,如改为其他需配置该项)
  • env.hadoop.conf.dir: hadoop配置文件存放路径,如[core|hdfs]-site.xml

 

黄色色块处为HA配置。

绿色色块处为容错和检查点配置。

6、配置masters文件

用于存放JobManager节点

server11-11:8082
server11-22:8082

7、配置slavers文件

用于存放TaskManager节点

server11-22
server11-33

8、配置zoo.cfg文件

用于存放zookeeper集群连接信息

server.1=server11-11-11-11:2888:3888

server.2=server11-11-11-12:2888:3888

server.3=server11-11-11-13:2888:3888

server.4=server11-11-11-14:2888:3888

server.5=server11-11-11-15:2888:3888
————————————————

9、变更flink-1.7.2目录的所属关系

chown -R my_admin. /opt/flink-1.7.2

 

10、添加HADOOP_USER_NAME环境变量

添加标红处环境变量

export FLINK_HOME=/opt/flink-1.7.2
export HADOOP_USER_NAME=deploy_person
export PATH=$PATH:$JAVA_HOME/bin:$SPARK_HOME/bin:$FLINK_HOME/bin

11、hdfs根路径下创建flink元数据存储路径

  • 使用hdfs用户登录hue并创建,如图中标注1;
  • /flink
  • /flinkCluster
  • 点击2中“Actions”,将两目录所属组改为deploy_person;

 

12、拷贝node1节点安装文件至其他节点

scp -r -P 2222 /opt/flink-1.7.2  server11-22:/opt/
scp -r -P 2222 /opt/flink-1.7.2  server11-33:/opt/

 

13、其他节点修改flink-1.7.2目录属主关系

 

root身份登录至node2、node3,执行:

chown -R my_admin. /opt/flink-1.7.2

 

四、启动flink服务

my_admin身份登录node1,执行

/opt/flink-1.7.2/bin/start-cluster.sh 

命令启动集群3个节点

 

五、检查flink服务

①、查看JobManager进程

登录node1、node2执行jps -ml:

127325 org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint --configDir /opt/flink-1.7.2/conf --executionMode cluster --host server11-11 --webui-port 8082
 
120716 org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint --configDir /opt/flink-1.7.2/conf --executionMode cluster --host server11-22 --webui-port 8082

 

②、查看TaskManager进程

登录node2、node3执行jps -ml:

121258 org.apache.flink.runtime.taskexecutor.TaskManagerRunner --configDir /opt/flink-1.7.2/conf
 
29267 org.apache.flink.runtime.taskexecutor.TaskManagerRunner --configDir /opt/flink-1.7.2/conf

 

启动若干时间后,检查数次以上进程,如正常存在,则服务已运行正常。

六、使用flink web控制台

使用如下URL进入Flink Web控制台:

http://11.11.11.11:8082/

 

后续可基于此Web控制台,进行计算任务提交、任务流程监控、状态查询、调优、troubleshooting等操作。