Flink on yarn
1.flink 与 yarn 的交互
2.配置
关闭yarn的内存检查,yarn-site.xml。并分发给其他节点。
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。在这里面我们需要关闭,因为对于flink使用yarn 模式下,很容易内存超标,这个时候yarn会自动杀掉job。
3.Session模式
特点:需要事先申请资源,启动JobManager和TaskManger 优点:不需要每次递交作业申请资源,而是使用已经申请好的资源,从而提高执行效率 缺点:作业执行完成以后,资源不会被释放,因此一直会占用系统资源应用场景:适合作业递交比较频繁的场景,小作业比较多的场景 实现模式:yarn-session.sh(开辟资源)+flinkrun(提交任务)
- 在yarn上启动一个Flink会话,执行以下命令:
yarn-session.sh-n2-tm 800 -s1-d
说明: 1.-n表示申请2个容器,这里指的就是多少个taskmanager 2.-tm表示每个TaskManager的内存大小 3.-s表示每个TaskManager的slots数量 4.-d表示以后台程序方式运行
flinkrun/usr/software/flink-1.13.0/examples/batch/WordCount.jar
在yarn的8088界面可以看到Flinksessioncluster正在运行。
yarn application-killapplication_id
4.Per-job模式
特点:每次递交作业都需要申请一次资源 优点:作业运行完成,资源会立刻被释放,不会一直占用系统资源 缺点:每次递交作业都需要申请资源,会影响执行效率,因为申请资源需要消耗时间 应用场景:适合作业比较少的场景、大作业的场景 实现模式:直接提交job
flink run -m yarn-cluster -yjm 1024 -ytm 1024 /usr/software/flink-1.13.0/examples/batch/WordCount.jar
说明: 1.-m jobmanager的地址 2.-yjm1024 指定jobmanager的内存信息 3.-ytm1024 指定taskmanager的内存信息
|