Flink On Yarn 模式说明与测试

一、环境说明


  1. 三台虚拟机内存分配如下
节点内存
hadoop0024G (主节点,内存分配大些)
hadoop0032G
hadoop0042G

如条件允许情况下,可以将所有节点内容调整高些,如4G

  1. Hadoop集群环境配置如下全分布式环境
节点安装路径dataDir路径
hadoop002/training/hadoop-2.7.3/training/hadoop-2.7.3/tmp
hadoop003/training/hadoop-2.7.3/training/hadoop-2.7.3/tmp
hadoop004/training/hadoop-2.7.3/training/hadoop-2.7.3/tmp
  1. Flink集群环境配置如下全分布式环境
节点安装路径Log路径
hadoop002/training/flink-flink-1.10.1//training/flink-flink-1.10.1/log
hadoop003/training/flink-flink-1.10.1//training/flink-flink-1.10.1/log
hadoop004/training/flink-flink-1.10.1//training/flink-flink-1.10.1/log

二、环境搭建


  1. Hadoop全分布式搭建,参考:Hadoop全分布式搭建
  2. Flink全分布式搭建,按照如下步骤即可
    1. 解压安装到/training目录下

    2. 在安装目录下的confiig目录下,修改flink-conf.yaml,只需修改其中的一项内容即可:
      在这里插入图片描述

    3. 在安装目录下的confiig目录下,修改masters,将localhost改成hadoop002:8081
      在这里插入图片描述

    4. 在安装目录下的confiig目录下,修改slaves,写入其他节点hadoop003和hadoop004

    5. 配置完成后,将整个flink安装目录整个分发至hadoop003和hadoop004

      	scp -r flink-1.10.1 root@hadoop003:/training/
      	scp -r flink-1.10.1 root@hadoop004:/training/
      
    6. 至此配置完成

三、Flink On Yarn模式


Flink 提供了两种在 yarn 上运行的模式,分别为 Session-Cluster 和 Per-Job-Cluster 模式。

  1. Session-cluster 模式
    Session-Cluster 模式需要先启动集群,然后再提交作业,接着会向 yarn 申请一 块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到 yarn 中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享 Dispatcher 和 ResourceManager;共享资源;适合规模小执行时间短的作业。 在 yarn 中初始化一个 flink 集群,开辟指定的资源,以后提交任务都向这里提 交。这个 flink 集群会常驻在 yarn 集群中,除非手工停止。
    在这里插入图片描述
  2. Per-Job-Cluster 模式:
    一个 Job 会对应一个集群,每提交一个作业会根据自身的情况,都会单独向 yarn 申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常 提交和运行。独享 Dispatcher 和 ResourceManager,按需接受资源申请;适合规模大 长时间运行的作业。
    每次提交都会创建一个新的 flink 集群,任务之间互相独立,互不影响,方便管 理。任务执行完成之后创建的集群也会消失。
    在这里插入图片描述

四、启动Session Cluster测试


  1. 启动Hadoop集群:start-all.sh

  2. 启动【Session Cluster】,在Flink安装目录下,执行如下命令:
    shell bin/yarn-session.sh -n 2 -s 2 -jm 512 -tm 512 -nm FlinkOnYarn &

    -n(–container):TaskManager 的数量。
    -s(–slots): 每个 TaskManager 的 slot 数量,默认一个 slot 一个 core,默认每个 taskmanager 的 slot 的个数为 1,有时可以多一些 taskmanager,做冗余。
    -jm:JobManager 的内存(单位 MB)。
    -tm:每个 taskmanager 的内存(单位 MB)。
    -nm:yarn 的 appName(现在 yarn 的 ui 上的名字)。

  3. 启动成功后,会看到如下日志:
    在这里插入图片描述

  4. 在浏览器中输入:http://hadoop004:32812,正常情况下会看到如下页面:
    在这里插入图片描述

  5. 在YARN的web UI上查看,会看到如下内容:
    在这里插入图片描述

  6. 可以通过jps命令查看,会看到有一个进程名为FlinkYarnSessionCli启动了,如下所示:
    在这里插入图片描述

  7. 到此,Session Cluster成功启动

  8. 如需关闭,可以执行kill或者执行如下命令结束:

    yarn application -kill application_1648559476376_0003 ##从yarn web ui获得
    

    其中yarn 命令为hadoop下的命令,执行上述命令后,会看到如下信息:
    在这里插入图片描述

五、Per Job Cluster测试


  1. 同样需要启动Hadoop集群(如已经启动不需要重复启动
  2. 不启动 yarn-session,【直接执行 job】,这个job可以是Flink本身提供的程序,也可以是自己编写的程序,本实验使用自己写的程序,程序在【Flink统计日志图片信息并降序排序】博文中,启动程序命令如下:
  3. 命令执行成功,控制台会看到结果如下:
    在这里插入图片描述
  4. 当程序还未执行完成的时候,可以访问上述截图所示的地址,查看Flink的界面
  5. 在YARN的Web界面中,也会看到有个Job被正常执行的记录:
    在这里插入图片描述
  6. 至次,Pre Job Cluster模式测试结束

六、小结


上述Flink的两种运行方式,本质上都是由Yarn进行资源的调度,由Yarn分配Container给Flink。类似于Spark On Yarn模式。无论是Spark On Yarn还是Flink On Yarn,都体现了资源管理与计算进行分离。这也类似与MapReduce V1.x 和 V2.x的发展历程。

如本文对您有所帮助,感谢您动动手指,给个赞吧!!!!!!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

若兰幽竹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值