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

Flink1.13.6 hadoop3.1.1版本,发现TM、JM中有大量的等待线程,有人遇到过吗?

Flink1.13.6 hadoop3.1.1版本,发现TM、JM中有大量的LeaseRenewer等待线程,有人遇到过吗?d48c30ef5cd5d595e0c78e806f192deb.png
使用的是yarn application模式,任务从kafka写到kafka,配了1分钟的chk。

展开
收起
三分钟热度的鱼 2023-11-30 16:22:39 98 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在 Apache Flink 1.13.6 和 Hadoop 3.1.1 的环境中,如果你发现 TaskManager(TM)和 JobManager(JM)中有大量的等待线程,这可能是由多种原因造成的。以下是一些常见的可能性:

    1. 资源竞争:如果任务需要的资源超过了可用资源,那么线程可能会进入等待状态,直到有更多的资源可用。

    2. 网络延迟或拥塞:在网络通信中,如果数据包传输速度较慢或者网络拥塞,可能也会导致线程等待。

    3. I/O操作:正在进行 I/O 操作(如磁盘读写、网络读写)的线程可能会因为等待硬件响应而进入等待状态。

    4. 锁争用:当多个线程尝试访问同一块受保护的代码区域时,如果没有足够的锁来同步它们,线程可能会被迫等待其他线程释放锁。

    5. 作业配置问题:不正确的作业配置可能导致过多的线程被创建,从而造成线程池饱和和等待现象。

    6. 并发控制:Flink 中的一些内部机制使用了并发控制策略,例如 Futures 或者 CountDownLatch,这些策略可能会导致线程进入等待状态。

    7. 外部服务依赖:如果你的应用程序依赖于外部服务(如数据库、消息队列),那么当这些服务响应变慢时,线程也可能会进入等待状态。

    8. 错误处理:在处理异常或错误时,Flink 可能会暂时阻塞某些线程,以便进行故障恢复或其他维护工作。

    要解决这个问题,你可以采取以下步骤:

    • 首先,收集关于线程堆栈的信息以确定它们正在等待什么资源或事件。
    • 调整你的作业配置,确保它与你的集群资源相匹配,并且可以高效地运行。
    • 如果可能,优化你的应用程序逻辑以减少对资源的竞争。
    • 确保网络连接稳定,并且有足够的带宽支持高负载下的数据传输。
    • 考虑增加系统的硬件资源,如内存、CPU 或存储,以减轻压力。
    • 对于长期存在的等待线程,检查是否有死锁或其他并发问题。
    2023-11-30 21:48:24
    赞同 展开评论 打赏
  • 在 Hadoop 中,LeaseRenewer 是一个用于管理分布式系统中租约(Lease)续约的线程。租约是一种用于实现分布式锁、资源分配等场景的机制,允许一个客户端在一段时间内持有某个资源或锁。LeaseRenewer 的作用就是定期续约这些租约,以确保客户端在需要的时候能够保持对资源的访问。
    具体来说,LeaseRenewer 的主要功能包括:

    1.定期续约: 在分布式系统中,客户端获取租约后,通常需要定期续约以保持对资源的访问权限。LeaseRenewer 线程负责定期发送续约请求给相应的服务,以防止租约过期。
    2.提供租约管理: LeaseRenewer 管理了所有租约的续约过程。它会跟踪每个租约的状态,并在需要时发送续约请求。这样,客户端就无需手动管理租约的过期和续约逻辑。
    3.处理失败和异常: LeaseRenewer 需要能够处理网络故障、服务不可用等异常情况。在出现这些异常时,它可能会采取一些措施,例如重试续约请求、标记租约过期等。

    LeaseRenewer 线程的存在使得开发人员能够更容易地使用分布式系统中的租约机制,而无需过多关注续约等底层细节。这对于实现一些分布式算法、资源管理或锁服务非常有用。
    在 Hadoop 中,LeaseRenewer 的一个常见用例是在 HDFS 中,它用于管理客户端对文件的租约,确保客户端在读写文件时保持对文件的访问权限。这个可能是你并行度很多 。或者你代码写的不好 用了很多个客户端。 此回答整理自钉群“【②群】Apache Flink China社区”

    2023-11-30 18:18:34
    赞同 1 展开评论 打赏

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

相关产品

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

    更多
    《构建Hadoop生态批流一体的实时数仓》 立即下载
    零基础实现hadoop 迁移 MaxCompute 之 数据 立即下载
    CIO 指南:如何在SAP软件架构中使用Hadoop 立即下载