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

广播流的并行度为 1, 向下游广播, 下游有 10个 taskmanager, 每个 taskman

请教大家一个问题,

广播流的并行度为 1, 向下游广播, 下游有 10个 taskmanager, 每个 taskmanager 8 个并行度, 也就是下游有 80 个并行度, 现在感觉只向其中 8 个进行了广播

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

    在阿里云Flink中,广播流的并行度为 1,向下游广播时,下游的并行度会取决于下游的并行度设置。如果下游的并行度设置为 80,那么 Flink 会将广播流发送给所有的下游并行实例,而不是只发送给其中 8 个。

    如果您发现广播流没有发送给所有的下游并行实例,可能是由于以下原因之一:

    1. 下游并行度设置不正确:如果下游的并行度设置不正确,可能会导致广播流没有发送给所有的下游并行实例。您可以检查下游的并行度设置,确保它们与预期的相同。

    2. 网络问题:如果下游并行实例之间的网络连接不稳定或不可用,可能会导致广播流没有发送给所有的下游并行实例。您可以检查网络连接,确保它们都是稳定的,并且可以访问所需的资源。

    3. 任务逻辑问题:如果任务逻辑不正确,可能会导致广播流没有发送给所有的下游并行实例。您可以检查任务逻辑,确保它们符合预期。

    2023-04-26 22:38:05
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    这可能是由于下游的某些 taskmanager 没有足够的可用资源来处理广播流导致的。您可以通过检查下游 taskmanager 的日志来查看是否有任何错误或资源不足的警告。如果是这样,您可以尝试增加下游 taskmanager 的资源,例如内存和 CPU,以确保它们能够处理广播流。另外,您还可以调整 Flink 的并行度设置,以便更好地利用下游 taskmanager 的资源。例如,您可以尝试增加广播流的并行度,以便更多的下游 taskmanager 可以处理它。

    2023-04-17 17:10:28
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    广播流的并行度为 1 表示只有一个并行度的任务处理广播流,但是在向下游进行广播时,每个下游 TaskManager 都会接收到广播数据并创建对应数量的任务来处理。因此,如果下游有 10 个 TaskManager,每个 TaskManager 有 8 个并行度,那么一共会有 80 个任务来处理广播数据。

    具体来说,广播流会被分成 80 个子任务,每个子任务都会被一个 TaskManager 中的一个并行度处理。这些子任务之间是相互独立的,它们将独立地处理广播数据,并将结果发送给下游算子。因此,所有的下游任务都会收到广播数据,而不仅仅是其中的 8 个任务。

    需要注意的是,在广播流的情况下,由于所有的下游任务都会处理相同的数据,因此可能会发生数据倾斜的情况。如果某个子任务的数据量远远超过其他任务,那么就会导致该任务的处理时间明显延长,从而影响整个任务的性能。为了避免这种情况,您可以尝试通过调整数据分区的方式来平衡数据负载。

    2023-04-11 11:15:55
    赞同 展开评论 打赏

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

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载