flink集群standalone模式安装

Flink完全分布式集群安装 - 知乎

Flink安装及使用 - Ruthless - 博客园

flink基本原理 - 阿凡卢 - 博客园Apache Flink1.13.x HA集群部署_willblog-CSDN博客_flink 集群ha部署Flink集群搭建 - jiFeng丶 - 博客园Apache Flink1.13.x HA集群部署_willblog-CSDN博客_flink 集群ha部署

flink集群模式安装配置 - 不像话 - 博客园

一 Flink集群搭建部署_曌的博客-CSDN博客_flink集群部署

过程中有很多问题需要摸索,遇到问题请参考上述文档。

1.1本地模式部署

1.1.1 将压缩包解压

[root@master root]# tar -zxvf flink-1.9.1-bin-scala_2.11.tgz -C /usr/local/

1.1.2 创建软连接(文件名太长操作不方便,就是改个名)

[root@master local]# ln -s flink-1.9.1/ flink

1.1.3 配置环境变量

[root@master local]# vim /etc/profile

在文件末尾加两行:

export FLINK_HOME=/usr/local/flink

export PATH=$PATH:$FLINK_HOME/bin

使环境变量生效:

source /etc/profile

测试:

[root@master ~]# flink --version

Version: 1.9.1, Commit ID: 4d56de8

1.1.4 启动本地模式

[root@master ~]# start-cluster.sh

测试:

[root@master ~]# jps

15429 Jps

12823 StandaloneSessionClusterEntrypoint

13261 TaskManagerRunner

1.1.5 关闭本地模式

[root@master ~]# stop-cluster.sh

1

1.2 standalone模式部署(在本地模式部署基础之上搭建)

1.2.1 修改flink/conf目录下的master slaves 文件(ip映射)

[root@master flink]# vim conf/masters

master:8081

[root@master flink]# vim conf/slaves

slave1

slave2

1.2.2修改flink/conf目录下flink-conf.yaml 文件

1.2.3 将配置好的flink文件同步到另外两个节点

[root@master local]# scp -r flink-1.9.1/ root@slave1:/usr/local/

[root@master local]# scp -r flink-1.9.1/ root@slave2:/usr/local/

1

2

注意点:没必要在slave上配置环境变量,我把启动脚本debug后发现,当master通过ssh免密登录到slave上启动脚本的时候,寻找的路径不是通过slave上的环境变量,而是通过master获得的路径加上固定的文件名,也就是说分发到slave上flink-1.9.1这个文件名不能改,即使改了配置了环境变量也启动不起来,我就是因为这个把启动过程的脚本debug了一边,而且其他软件的安装好像都遵循这个规则:分发过去的文件名不能改。

1.2.4 启动测试(免密登录前提必须配置好)

[root@master ~]# start-cluster.sh

Starting cluster.

Starting standalonesession daemon on host master.

Starting taskexecutor daemon on host slave1.

Starting taskexecutor daemon on host slave2.

1.3 搭建HA(要求HadoopHA,YarnHA,zookeeper集群部署完成)

1.3.1 修改配置文件flink-conf.yaml,masters,slaves

##### masters

master:8081

slave1:8081

##### slaves

slave1

slave2

##### flink-conf.yaml(增加HA配置)

high-availability: zookeeper

high-availability.storageDir: hdfs:///cluster/flink/ha/  //cluster是你Hadoop高可用hdfs入口

high-availability.zookeeper.quorum: master:2181,slave1:2181,slave2:2181

high-availability.zookeeper.client.acl: open

high-availability.zookeeper.path.root: /flink

high-availability.cluster-id: /cluster_one

1.3.2 同步文件

[root@master local]# scp -r flink-1.9.1/ root@slave1:/usr/local/

[root@master local]# scp -r flink-1.9.1/ root@slave2:/usr/local/

修改slave1上的jobmanager.rpc.address= slave1

1.3.3 测试(先启动Hadoop,zookeeper集群)

[root@master ~]# start-cluster.sh

Starting HA cluster with 2 masters.

Starting standalonesession daemon on host master.

Starting standalonesession daemon on host slave1.

Starting taskexecutor daemon on host slave1.

Starting taskexecutor daemon on host slave2.

1.4 Flink on Yarn(yarn session 和 flink run 两种模式)

这只是两种启动模式,不需要进行配置,直接执行命令即可。

1.4.1 yarn session

1.4.1.1 介绍

这种方式需要先向yarn申请一块空间后,再提交作业,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,那下一个作业才会正常提交,这种方式资源被限制在session中,不能超过,比较适合特定的运行环境或者测试环境。

1.4.1.2 启动 yarn session

1.启动开启yarn的Hadoop集群和zookeeper

2.向yarn申请一块资源:

[root@master conf]# yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test

1

其中:

-n(–container):TaskManager的数量。

-s(–slots): 每个TaskManager的slot数量,默认一个slot一个core,默认每个 taskmanager的slot的个数为1,有时可以多一些taskmanager,做冗余。

-jm:JobManager的内存(单位MB)。

-tm:每个taskmanager的内存(单位MB)。

-nm:yarn 的appName(现在yarn的ui上的名字)。

-d:后台执行。

我在运行的时候查看日志文件发现三个问题,都是Hadoop中yarn-site.xml缺省配置参数:

<!--log-->

 <property>

        <name>yarn.log-aggregation-enable</name>

        <value>true</value>

 </property>

 <property>

        <name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>

        <value>3600</value>

 </property>

 <property>

        <name>yarn.nodemanager.remote-app-log-dir</name>

        <value>/tmp/logs</value>

 </property>

<property>

 <name>yarn.nodemanager.resource.memory-mb</name>

 <value>16384</value>

</property>

<property>

 <name>yarn.scheduler.minimum-allocation-mb</name>

 <value>1024</value>

</property>

<property>

 <name>yarn.scheduler.maximum-allocation-mb</name>

 <value>16384</value>

</property>

<property>

    <name>yarn.nodemanager.vmem-check-enabled</name>

    <value>false</value>

</property>

注意点:如果配置完还出现问题,你的yarn-site.xml中resourcemanager可能设置在了主节点,新开的服务都在这个节点运行,内存爆了,把resourcemanager设置在其他节点,或者增大主节点的内存。

启动后的进程:

---------{ master  }----------------------------------------

6564 NameNode

98756 FlinkYarnSessionCli

8005 DFSZKFailoverController

99655 Jps

9289 ResourceManager

6937 JournalNode

7631 QuorumPeerMain

---------{ slave1  }----------------------------------------

79955 YarnSessionClusterEntrypoint

5669 DFSZKFailoverController

4438 JournalNode

4264 DataNode

4665 NodeManager

80381 Jps

5054 QuorumPeerMain

4143 NameNode

5903 ResourceManager

---------{ slave2  }----------------------------------------

74833 Jps

4819 QuorumPeerMain

4230 JournalNode

4428 NodeManager

4060 DataNode

注意点:FlinkYarnSessionCli只有在前台运行的时候不会关闭,加了-d后台启动完成后这个进程就会关闭。YarnSessionClusterEntrypoint会和ResourceManager在同一个节点启动,如果这些服务在一个节点启动,内存得2.5g以上。

浏览器访问http://master:8088

1.4.2 flink run

1.4.2.1 介绍

这种方式的好处是一个任务会对应一个job,即没提交一个作业会根据自身的情况,向yarn申请资源,直到作业执行完成,并不会影响下一个作业的正常运行,除非是yarn上面没有任何资源的情况下。一般生产环境是采用此种方式运行。这种方式就需要确保集群资源足够。

flink run的HA运用的是standalone里的配置信息,所以不需要再配

1.4.2.2 启动 flink run

flink run -m yarn-cluster -yn 2 -c 类名 -d 包名 参数

常用的配置有:

● -yn,--yarncontainer <arg> Number of Task Managers

● -yqu,--yarnqueue <arg> Specify YARN queue.

● -ys,--yarnslots <arg> Number of slots per TaskManager

1.5 Yarn session HA(前提: Yarn HA)

1.5.1 修改yarn-site.xml

<property>

<name>yarn.resourcemanager.am.max-attempts</name>

<value>4</value>

<description>配置提交的应用程序最大的尝试的次数 </description>

</property>

1.5.2 修改flink-conf.yaml

high-availability: zookeeper high-availability.zookeeper.quorum: master:2181, slave1:2181, slave2:2181

high-availability.storageDir: hdfs://cluster/flink/ha-yarn

high-availability.zookeeper.path.root: /flink-yarn

yarn.application-attempts: 4

1.5.3 同步文件

[root@master local]# scp -r flink-1.9.1/ root@slave1:/usr/local/

[root@master local]# scp -r flink-1.9.1/ root@slave2:/usr/local/

修改slave1上的jobmanager.rpc.address= slave1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小金子的夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值