请问一下 用Flink的yarn模式 在flink-conf.yaml配置文件设置slot数量为10 启动./yarn-session.sh -n 2 -s 10 报错 只有8个solt可用 机器配置两个CPU每个都是10个slot 在yarn中配置yarn.containers.vcores=10没用
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Apache Flink中使用YARN模式时,遇到配置的slot数量与实际可用不匹配的问题,通常涉及到几个关键点的配置和理解。根据您的描述,您希望设置每个TaskManager有10个slot,并尝试通过yarn-session.sh
启动会话时指定2个TaskManagers(-n 2)和每个TaskManager 10个slot(-s 10),但系统报错显示只有8个slot可用。
这里有几个可能的原因和解决方法:
CPU核心数与Slot配置不匹配:首先,确认您的物理机器或YARN集群节点的CPU核心数。Flink的slot配置应当与硬件资源相匹配。如果每个节点有2个CPU,每个CPU是10个核,理论上确实可以配置成每个TaskManager有20个slot(因为总共有20个vCore)。但是,您提到的配置似乎与期望不符。
YARN配置问题:确保YARN正确配置了每个容器可使用的vCore数。您提到已经设置了yarn.containers.vcores=10
,这表明单个YARN容器最多可以使用10个虚拟核心。但是,这个配置需要与YARN对整个节点的资源分配相协调。请检查YARN对节点管理器(NodeManager)的总资源配置,包括yarn.nodemanager.resource.memory-mb
和yarn.nodemanager.resource.cpu-vcores
,确保它们能够支持您想要的配置。
Flink配置与YARN资源配置的协调:即使在Flink的flink-conf.yaml
中设置了TaskManager的slot数量为10,也需要确保YARN允许为每个Application Master(或Flink的JobManager)及TaskManager分配足够的资源。特别是,当您通过命令行参数 -n 2 -s 10
启动时,实际上是在请求总共20个slot,这要求YARN有足够的资源来满足这一需求。
资源预留和竞争:YARN是一个资源共享平台,如果有其他应用也在运行,它们可能会占用部分资源,导致当前Flink应用无法获得预期的资源量。检查是否有其他应用正在运行并消耗资源。
内存限制:除了vCores,内存也是重要的考量因素。确保YARN和Flink的内存配置不会成为瓶颈。Flink的slot配置不仅受vCore数量限制,还受限于内存配置。
解决建议: - 双重检查YARN的全局配置以及每个节点的资源设置,确保它们与您期望的Flink配置相匹配。 - 考虑调整YARN的资源分配策略,或者在没有其他高优先级应用竞争资源的情况下重新尝试启动Flink会话。 - 确认没有其他应用程序正在占用您未预料到的资源。 - 如果有必要,适当减少Flink的slot配置以适应当前YARN环境的限制,或者增加YARN集群的资源总量。
希望这些建议能帮助您解决问题。