开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink-sql 实时任务挂了一般是机器的什么限制导致的

flink-sql 实时任务挂了,报这个错 Caused by: org.apache.flink.util.SerializedThrowable: java.lang.OutOfMemoryError: unable to create new native thread,这个一般是机器的什么限制导致的

展开
收起
JWRRR 2023-04-03 16:36:24 398 0
2 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    报错信息显示是java.lang.OutOfMemoryError: unable to create new native thread,说明无法创建新的本地线程,很可能是您的机器在使用所有可用线程时遇到了限制。这可能是由于您的操作系统对每个用户的线程创建数目做出了限制。

    您可以尝试通过 ulimit 命令来查看和设置当前用户的线程数限制,以及调整该限制。

    2023-04-24 14:33:29
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    这个错误是由于操作系统无法为新线程分配足够的内存空间导致的。这通常是因为已经达到了系统中线程的最大数量限制。可以根据以下步骤来解决这个问题:

    检查系统中可用的内存和线程资源,确认是否已经达到极限。

    如果确认是线程数量限制导致的问题,可以通过以下命令来增加线程数量限制:

    ulimit -u <number_of_threads>

    其中 number_of_threads 是您希望为系统设置的最大线程数。请注意,这个值不能超过操作系统允许的最大值。

    如果您需要在 Flink 中的作业中使用更多的线程,可以通过以下方式来增加 Flink 的 TaskManager 线程数量:

    taskmanager.numberOfTaskSlots: <number_of_task_slots>

    其中 number_of_task_slots 是您希望为每个 TaskManager 分配的线程数。

    如果上述方法仍然无法解决问题,请考虑升级您的系统或使用更多的资源,例如增加 CPU / 内存等。

    2023-04-03 16:38:44
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    SQL Server在电子商务中的应用与实践 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载