目录

  • 为什么用on yarn模式
  • 两种模式
  • Session模式搭建
  • 启动
  • 测试
  • 内存Job管理模式(Run a Flink job on YARN)
  • 启动测试


为什么用on yarn模式

在集群运行时,可能会有很多的集群实例包括MapReduce、Spark、Flink等等,那么如果它们全基于on Yarn就可以完成资源分配,减少单个实例集群的维护,提高集群的利用率。

两种模式

  1. 内存集中管理模式(Session模式)

这种方式需要先启动集群,然后在提交作业,接着向yarn申请一块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,那下一个作业才会正常提交.

flink mysql update 和 insert 怎么处理 flink sql on yarn_linux

  1. 内存Job管理模式(Run a Flink job on YARN)

这种方式的好处是一个任务会对应一个job,即没提交一个作业会根据自身的情况,向yarn申请资源,直到作业执行完成,并不会影响下一个作业的正常运行,除非是yarn上面没有任何资源的情况下。

flink mysql update 和 insert 怎么处理 flink sql on yarn_spark_02

Session模式搭建

先配置以下yarn-site.xml文件,关闭yarn的内存检查

flink mysql update 和 insert 怎么处理 flink sql on yarn_hadoop_03


将修改好的yarn文件分发给另外两个节点

flink mysql update 和 insert 怎么处理 flink sql on yarn_hadoop_04

启动

在环境变量中添加HADOOP_CONF_DIR

export HADOOP_CONF_DIR=/usr/hadoop/hadoop-3.1.4/etc/hadoop

启动Hadoop集群

flink mysql update 和 insert 怎么处理 flink sql on yarn_hadoop_05


启动flink集群

flink mysql update 和 insert 怎么处理 flink sql on yarn_linux_06


flink mysql update 和 insert 怎么处理 flink sql on yarn_java_07

启动session模式,开辟资源

yarn-session的参数介绍
  -n : 指定TaskManager的数量;
  -d: 以分离模式运行;
  -id:指定yarn的任务ID;
  -j:Flink jar文件的路径;
  -jm:JobManager容器的内存(默认值:MB);
  -nl:为YARN应用程序指定YARN节点标签;
  -nm:在YARN上为应用程序设置自定义名称;
  -q:显示可用的YARN资源(内存,内核);
  -qu:指定YARN队列;
  -s:指定TaskManager中slot的数量;
  -st:以流模式启动Flink;
  -tm:每个TaskManager容器的内存(默认值:MB);
  -z:命名空间,用于为高可用性模式创建Zookeeper子路径;
[root@master1 bin]# yarn-session.sh -n 2 -jm 1024 -tm 1024 -d

没有报错

flink mysql update 和 insert 怎么处理 flink sql on yarn_hadoop_08


flink mysql update 和 insert 怎么处理 flink sql on yarn_linux_09


好像没啥问题再去yarn查看

flink mysql update 和 insert 怎么处理 flink sql on yarn_spark_10


总感觉哪里有问题

flink mysql update 和 insert 怎么处理 flink sql on yarn_hadoop_11

测试

上传一份测试文件

[root@master1 test]# hadoop fs -put /root/test/word.txt /test

flink mysql update 和 insert 怎么处理 flink sql on yarn_hadoop_12


flink mysql update 和 insert 怎么处理 flink sql on yarn_大数据_13

[root@master1 batch]# flink run WordCount.jar -input hdfs://master1:9000/test/test.txt -output hdfs://master1:9000/test/output1/word1.txt

flink mysql update 和 insert 怎么处理 flink sql on yarn_java_14


flink mysql update 和 insert 怎么处理 flink sql on yarn_java_15


看看yarn

flink mysql update 和 insert 怎么处理 flink sql on yarn_大数据_16


flink mysql update 和 insert 怎么处理 flink sql on yarn_hadoop_17

内存Job管理模式(Run a Flink job on YARN)

启动测试

命令:

[root@master1 batch]# flink run -m yarn-cluster -yjm 1024 -ytm 1024 /usr/flink/flink-1.12.2/examples/batch/WordCount.jar

flink mysql update 和 insert 怎么处理 flink sql on yarn_spark_18


flink mysql update 和 insert 怎么处理 flink sql on yarn_spark_19


因为没有指定处理的文件,它会自动处理它默认的文件

flink mysql update 和 insert 怎么处理 flink sql on yarn_spark_20


运行完会自动释放内存

flink mysql update 和 insert 怎么处理 flink sql on yarn_linux_21