开发者社区 问答 正文

用Flink的yarn模式 在flink-conf.yaml配置文件设置slot数量为10 启动./yarn-session.sh -n 2 -s 10 报错 只有8个solt可用 机器配置两个CPU每个都是10个slot 在yarn中配置yarn.containers.vcores=10没用

请问一下 用Flink的yarn模式 在flink-conf.yaml配置文件设置slot数量为10 启动./yarn-session.sh -n 2 -s 10 报错 只有8个solt可用 机器配置两个CPU每个都是10个slot 在yarn中配置yarn.containers.vcores=10没用

展开
收起
flink小助手 2018-11-22 14:17:19 8551 分享
分享
版权
举报
阿里云 AI 助理回答

在Apache Flink中使用YARN模式时,遇到配置的slot数量与实际可用不匹配的问题,通常涉及到几个关键点的配置和理解。根据您的描述,您希望设置每个TaskManager有10个slot,并尝试通过yarn-session.sh启动会话时指定2个TaskManagers(-n 2)和每个TaskManager 10个slot(-s 10),但系统报错显示只有8个slot可用。

这里有几个可能的原因和解决方法:

  1. CPU核心数与Slot配置不匹配:首先,确认您的物理机器或YARN集群节点的CPU核心数。Flink的slot配置应当与硬件资源相匹配。如果每个节点有2个CPU,每个CPU是10个核,理论上确实可以配置成每个TaskManager有20个slot(因为总共有20个vCore)。但是,您提到的配置似乎与期望不符。

  2. YARN配置问题:确保YARN正确配置了每个容器可使用的vCore数。您提到已经设置了yarn.containers.vcores=10,这表明单个YARN容器最多可以使用10个虚拟核心。但是,这个配置需要与YARN对整个节点的资源分配相协调。请检查YARN对节点管理器(NodeManager)的总资源配置,包括yarn.nodemanager.resource.memory-mbyarn.nodemanager.resource.cpu-vcores,确保它们能够支持您想要的配置。

  3. Flink配置与YARN资源配置的协调:即使在Flink的flink-conf.yaml中设置了TaskManager的slot数量为10,也需要确保YARN允许为每个Application Master(或Flink的JobManager)及TaskManager分配足够的资源。特别是,当您通过命令行参数 -n 2 -s 10 启动时,实际上是在请求总共20个slot,这要求YARN有足够的资源来满足这一需求。

  4. 资源预留和竞争:YARN是一个资源共享平台,如果有其他应用也在运行,它们可能会占用部分资源,导致当前Flink应用无法获得预期的资源量。检查是否有其他应用正在运行并消耗资源。

  5. 内存限制:除了vCores,内存也是重要的考量因素。确保YARN和Flink的内存配置不会成为瓶颈。Flink的slot配置不仅受vCore数量限制,还受限于内存配置。

解决建议: - 双重检查YARN的全局配置以及每个节点的资源设置,确保它们与您期望的Flink配置相匹配。 - 考虑调整YARN的资源分配策略,或者在没有其他高优先级应用竞争资源的情况下重新尝试启动Flink会话。 - 确认没有其他应用程序正在占用您未预料到的资源。 - 如果有必要,适当减少Flink的slot配置以适应当前YARN环境的限制,或者增加YARN集群的资源总量。

希望这些建议能帮助您解决问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答