Flink Standalone Cluster 集群安装

本文主要介绍如何将Flink以分布式模式运行在集群上(可能是异构的)。
一、环境准备
目前准备的环境是环境说明为 :Vmavare+centos7 4G 20G ,在安装Flink之前,确保每台机器上都做好响应的基础准备工作,
1). JDK环境:要求1.8.x或者更高,Oracle JDK或者OpenJDK都可以,二进制包解压的方式安装要配置好JAVA_HOME
2). 主机和host文件配置:主机名和hosts配置文件集群内完全对应,准确配置.
3). 防火墙关闭:集群之间保证通信正常,关闭防火墙或者提前设置好规则.
4). ssh免密:集群所有节点配置ssh免密,否则后续启动集群的时候还需要输入密码.
5). 时间同步服务:集群配置时间同步服务,ntp或者chrony服务,这个应该是大数据组件集群的标配

1)JDK环境安装
参考《Flink本地standalone部署》

配置JAVA_HOME

另一种是,sudo vi /etc/profile,在其中添加JAVA_HOME:

以下为一种简单模板,可以进行相应的修改。

JDK

JAVA_HOME=/usr/local/jdk/jdk1.8.0_161 #此处修改
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export JRE_HOME
export PATH
export CLASSPATH

此为完全配置模板,可以进行相应的修改。
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH#node
export NODE_HOME=/usr/local/es/node-v9.11.1-linux-x64
export PATH=$NODE_HOME/bin:$PATH#maven
export MAVEN_HOME=/usr/local/software/maven-3.5.3
export PATH=$MAVEN_HOME/bin:$PATH#hadoop
export HADOOP_HOME=/usr/local/software/hadoop-2.8.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"#hive
export HIVE_HOME=/usr/local/software/hive-2.2.0
export PATH=$HIVE_HOME/bin:$PATH

然后使环境变量生效,并验证 Java 是否安装成功

执行命令,刷新该配置(必备操作):

source /etc/profile

检查是否使用了最新的 JDK:

java -version

2)主机和host文件配置

查看当前主机名

cat /etc/hostname

设置当前主机名。

hostnamectl set-hostname centos129
hostnamectl set-hostname centos130
hostnamectl set-hostname centos131

编辑/etc/hosts文件:vim /etc/hosts

192.168.159.129 centos129
192.168.159.130 centos130
192.168.159.131 centos131

备注:
由于IP采用静态设置的方式,所以得提前配置好网络
子网:192.168.159.0
子网掩码:255.255.255.0
网关:192.168.159.2

vim /etc/sysconfig/network-scripts/ifcfg-ens33
或者vim /etc/sysconfig/network-scripts/ifcfg-eth0 (同步修改设备名)
修改内容如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6e2d18fb-d00a-4bcc-a16c-c5bffabe7c1b
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.159.130
NETMASK=255.255.255.0
GATEWAY=192.168.159.2
BROADCAST=255.255.255.0 

  1. 防火墙关闭
    systemctl stop firewalld

4、SSH免密码登录

目前采用root账号进行操作,可能会有很多的安全问题,这个以后再讨论。
登录了master节点,你就可以生成一对新的公钥/私钥,运行下面这段命令会在 ~/.ssh 目录下生成一对新的公钥/私钥。

ssh-keygen -b 2048 -P '' -f ~/.ssh/id_rsa

接下来,将公钥添加到用于认证的authorized_keys文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

最后,将authorized_keys文件分发给集群中所有的worker节点,你可以重复地执行下面这段命令:

scp ~/.ssh/authorized_keys :~/.ssh/
scp ~/.ssh/authorized_keys centos129:~/.ssh/
scp ~/.ssh/authorized_keys centos130:~/.ssh/
scp ~/.ssh/authorized_keys centos131:~/.ssh/
将上面的替代成相应worker节点的IP/Hostname。完成了上述拷贝的工作,你应该就可以从master上免密登录其他机器了。

ssh

三、安装Flink

2.下载Flink
进入下载页面。请选择一个与你的Hadoop版本相匹配的Flink包。如果你不打算使用Hadoop,选择任何版本都可以。
我这里下载的flink是flink-1.5.1,hadoop是hadoop-2.8.3。
在下载了最新的发布包后,拷贝到master节点上,并解压:

tar xzf flink-1.5.1/.tgzcd flink-1.5.1/

2.配置Flink

1)编辑conf/flink-conf.yaml
由于flink 版本变化,内存模型发生变化,配置内容会有调整。这里采用系统默认参数,只需修改jobmanager.rpc.address:为master主机名即可。
jobmanager.rpc.address: centos129

2)修改slaves和masters2个文件,用来配置taskManager和JobManager信息

centos129:8081

[hadoop@主机1 conf]$ cat workers
centos130
centos131
[hadoop@主机1 conf]$ cat masters
centos129:8081

flink-conf.yaml中配置key/value时候在“:”后面需要有一个空格,否则配置不会生效。

3)同步信息
将flink安装所有信息已经环境信息同步到其他机器上面,这里有几台机器就要执行几次

scp /etc/profile root@cdh3:etc/profile
scp -r /opt/flink/flink-1.12.2 root@centos130:/opt/flink/flink-1.12.2
scp -r /opt/flink/flink-1.12.2/conf/flink-conf.yaml root@centos130:/opt/flink/flink-1.12.2/conf/flink-conf.yaml
scp -r /opt/flink/flink-1.12.2/conf/flink-conf.yaml root@centos131:/opt/flink/flink-1.12.2/conf/flink-conf.yaml
source /etc/proflie

3.启动Flink

1)执行 bin/start-cluster.sh

2)执行JPS查看进程

3)其他命令

停止集群命令: bin/stop-cluster.sh 执行之后所有节点的进程都会停止

单个jobmanager的启动或停止: bin/jobmanager.sh start|start-foreground|stop|stop-all

单个taskmanager的启动或停止: bin/taskmanager.sh start|start-foreground|stop|stop-all


以上时flink standaline集群测试环境部署步骤,个人感觉在多台机器进行文件配置和同步比较麻烦,如果服务集群多了,部署成本会增加不少。如果有更多的方案,可和我联系。

posted @ 2021-04-08 12:49  杨志浩  阅读(203)  评论(0)    收藏  举报