开发者社区> 问答> 正文

TM太多,作业运行失败如何解决?

需要200个slot,如果指定TM个数为40,每个TM的slot个数为4,可以正常运行作业。如果指定TM为200,每个TM的slot个数为1,集群可以正常构建,ui上Available Task Slots显示为200,提交作业的时候,就会出现如下报错:

Cased by: java.net.NoRouteToHostException: No route to host.

目前我遭遇到的使用场景说明如上,希望得到一些回复和解答说明,非常感谢。

来自志愿者整理的flink邮件归档来自志愿者整理的FLINK邮件归档

展开
收起
毛毛虫雨 2021-12-05 05:37:15 649 0
1 条回答
写回答
取消 提交回答
  • 从日志看,报错的根本原因是有 TM 挂掉了,导致 pod 被 remove,这样从其他 TM 上就找不到挂掉的 TM 的地址。你可以确认一下,发生错误的时候是否有 TM 挂掉/重启。

    至于 TM 挂掉的原因,需要想办法获取到失败 TM 的日志。按照你之前的描述,集群启动的时候是没问题的,作业执行的时候才有问题。我现在怀疑的方向是,作业执行造成的资源问题使得 TM 发生了 OOM 或者是内存超用被 Kubernetes 杀掉了。你在修改 TM 数量、slot 数量的过程中,是否调整了 TM 的资源大小?另外即使没有调整,作业本身消耗的资源也会有所变化,例如 TM 数量变多导致每个 TM 需要建立更多的网络连接从而消耗的内存。具体还是需要根据日志分析。

    来自志愿者整理的flink邮件归档来自志愿者整理的FLINK邮件归档

    2021-12-05 11:10:05
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
面向失败设计 立即下载
十分钟上线-使用函数计算构建支付宝小程序服务 立即下载
Android应用-启动速度和内存优化实践 立即下载