Flink在ubuntu环境下的集群部署

下载Flink安装包

  • 下载flink

https://mirror.bit.edu.cn/apache/flink/flink-1.11.2/flink-1.11.2-bin-scala_2.12.tgz   #镜像链接下载速度快

  • 服务器创建flink目录,上传到该目录然后解压缩

mkdir flink

tar -xvf flink-1.11.2-bin-scala_2.12.tgz

添加一个专用用户,并附加管理员角色

#添加shower用户
sudo adduser shower

#管理员为shower添加管理员权限
sudo adduser shower sudo

#更改flink文件权限为shower所有
sudo chown -R  shower:shower flink

#更换为shower用户登录
su shower

下载Java8

  • 下载Java8

sudo apt install openjdk-8-jdk-headless       

  •  切换到Java8,因为编号2指代的是Java8,所以输入2即可

sudo update-alternatives --config java   

  • 编辑profile文件,加入代码段

sudo vi /etc/profile 

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JAVA_BIN=/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

source /etc/profile  #配置即刻生效

  • 添加软连接

cd /usr/bin

sudo ln -s -f /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java
sudo ln -s -f /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/javac

集群之间免密登录

1.为集群每一台机器配置域名,方便通过域名相互访问

sudo vi /etc/hosts

ip1   node1
ip2   node2
ip3   node3

2. node1,node2,node3...每台机器上都生成密钥

ssh-keygen -t rsa

cd /home/shower/.ssh

cp id_rsa.pub authorized_keys

3.密钥授权到node1上

ssh-copy-id -i node1    #登录node1执行

ssh-copy-id -i node1    #登录node2执行

ssh-copy-id -i node1   #登录node3执行

4.登录node1,密钥分发

chmod 600 authorized_keys

scp /home/shower/.ssh/authorized_keys node2:/home/shower/.ssh/

scp /home/shower/.ssh/authorized_keys node3:/home/shower/.ssh/

使用 Flink 自带的脚本部署 Zookeeper

1.修改Zookeeper 集群的脚本配置

根据你要部署的 Zookeeper Server 的机器数来配置“server.X=addressX:peerPort:leaderPort”,其中“X”是一个 Zookeeper Server 的唯一 ID,且必须是数字。

#vi conf/zoo.cfg

clientPort=2181 
server.1=node1:4888:5888
server.2=node2:4888:5888
server.3=node3:4888:5888

2.启动zookeeper

./bin/start-zookeeper-quorum.sh

tips:启动可能会报异常ClassNotFoundException,缺失的是log4j中的类,我们可以把其他项目中用到的log4j.jar直接拷贝到$JAVA_HOME/jre/lib/ext/下。至此启动正常

3.查看集群主备情况

echo stat|nc node2 2181

4.关闭zookeeper

./bin/stop-zookeeper-quorum.sh

配置并启动flink

1.修改 conf/masters 文件,设置两个master

$vi conf/masters

node1:8081

node2:8081

cd /home/shower/flink/flink-1.11.2/

#拷贝到集群其他机器

scp conf/masters node1:/home/shower/flink/flink-1.11.2/conf/

scp conf/masters node2:/home/shower/flink/flink-1.11.2/conf/

2.修改 conf/workers文件,设置3个worker

$vi conf/workers

node1
node2
node3

#拷贝到集群其他机器

scp conf/workers node1:/home/shower/flink/flink-1.11.2/conf/

scp conf/workers node2:/home/shower/flink/flink-1.11.2/conf/

3.修改Flink的HA配置

$vi conf/flink-conf.yaml

high-availability: zookeeper    # 基于zookeeper实现高可用

high-availability.storageDir: file:///share  # JobManager 的 meta 信息放在 dfs,建议使用Hdfs

high-availability.zookeeper.quorum: node1:2181,node2:2181,node3:2181  # zookeeper集群

#拷贝到集群其他机器

scp conf/flink-conf.yaml node1:/home/shower/flink/flink-1.11.2/conf/

scp conf/flink-conf.yaml node2:/home/shower/flink/flink-1.11.2/conf/

4.启动zookeeper集群和flink集群

./bin/start-zookeeper-quorum.sh

./bin/start-cluster.sh

5.访问node1,node2的web页面

6.HA验证

删除node1上的StandaloneSessionClusterEntrypoint进程,node1已经不能访问 但是node2还是能正常访问

kill -9 40468

然后再次启动node1,node1 node2都可以访问,且页面显示的集群指标数据一样

./bin/jobmanager.sh start node1 8081

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值