我正在使用3 m5.xlarge节点(1个主,2个核心(和Flink 1.8安装(EMR-5.24.1(。
在主节点上,我使用以下命令在纱线集群中启动flink会话:
flink-yarn-session -s 4 -jm 12288m -tm 12288m
这是YARN的最大内存和插槽,让我基于选定的实例类型设置。
在启动期间有一个日志:
org.apache.flink.yarn.AbstractYarnClusterDescriptor - Cluster specification: ClusterSpecification{masterMemoryMB=12288, taskManagerMemoryMB=12288, numberTaskManagers=1, slotsPerTaskManager=4}
这表明只有一个任务管理器。另外,当查看纱线节点管理器时,我看到其中一个核心节点上只有一个容器。纱线资源管理器显示该应用程序仅使用群集的50%。
使用当前的设置,我假设我可以将Flink作业运行,并将并行设置设置为8(2个任务Manager * 4个插槽(,但是如果提交作业已将并行性设置为4个以上,则它会在一段时间后失败无法获得所需的资源。
如果作业并行性设置为4(或更少(,则该作业应尽可能地运行。通过神经节查看CPU和内存利用率,它表明只使用了一个节点,而另一个节点则是平坦的。
为什么应用程序仅在一个节点上运行以及如何使用另一个节点?我是否需要在纱线上设置一些可以在另一个节点上设置flink的东西?
在Flik的先前版本中,有启动选项 -n ,用于指定任务管理数量的数量。该选项现在已过时。
启动'会话群集'时,您应该只看到一个用于Flink Job Manager的容器。这可能是您在纱线资源管理器中看到的。提交作业后,将自动为任务管理人员分配其他容器。
您在资源管理器UI中看到了多少个核心?
不要忘记,工作经理还使用可用的8中心。
您需要在这里做一些"数学"。例如,如果您将插槽的数量设置为每个TM 2,而每个TM的内存较少,则提交了一个并行性6的作业,它应该与3 tms一起使用。