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

为什么flink计算100w量级的数据要花好几分钟?

整个加工链路是从mysql读binlog日志到flink里做关联,然后写到holo。源端mysql表A有20w条数据,但是不定期会全部delete掉,然后再写入20w数据。由于mysql数据会被采集到flink里做加工,所以源端删除20w再重写20w的操作,会导致在flink里也是这样。和另外一张5w的表B关联后形成100多w数据写入holo。如果源端全删全插一次,走一遍整体流程(从读binlog日志写入flink开始,到将最终结果写入holo)要好几分钟。这个时间貌似有点长,经排查时间主要是花在计算上了,如果只从源端同步20w数据到holo里只需要十几秒钟,计算过程花了较长时间。所以为什么flink计算100w量级的数据要花好几分钟?

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

    Flink在处理大量数据时,可能会遇到一些性能瓶颈。以下是可能导致Flink计算100万量级数据花费较长时间的原因:

    1. 数据倾斜:如果某些key的数据量过大,可能会导致数据倾斜,从而影响整个任务的执行效率。在这种情况下,可以考虑使用KeyedStream或者进行窗口分区来减少数据倾斜的影响。

    2. 网络延迟:Flink是基于分布式计算的,数据需要在各个节点之间传输。如果网络延迟较高,可能会导致数据传输速度变慢,从而影响整个任务的执行效率。可以尝试优化网络环境,或者调整Flink的配置参数来减少网络传输的影响。

    3. 资源分配不足:如果Flink集群的资源分配不足,可能会导致任务执行缓慢。可以尝试增加Flink集群的资源,例如增加CPU、内存等。

    4. 算法复杂度:如果Flink中的算法实现较为复杂,可能会导致计算速度较慢。可以尝试优化算法实现,或者使用更高效的算法来提高计算速度。

    5. 系统其他因素:除了上述原因外,还可能存在其他因素影响Flink的计算速度,例如操作系统、硬件设备等。可以尝试排查这些因素,以找到导致计算速度较慢的原因。

    2023-12-06 21:54:07
    赞同 展开评论 打赏
  • ①资源分配不足:core数、内存大小不足以支撑大规模数据计算,那么就会导致处理速度变慢。
    ②网络传输:在Flink处理过程中,可能会涉及到数据在不同节点之间的传输,如果网络条件不佳,也会影响到数据处理的速度。
    ③数据倾斜:如果数据分布不均匀,导致某些节点上的数据量过大,而其他节点上的数据量较少,这种数据倾斜现象会使得整体计算效率降低。
    ④状态管理:Flink在处理数据时会维护一定的状态信息,如果状态大小过大或者状态更新频繁,也会增加处理时间。
    ⑤Flink 处理CDC 增量数据只能单并发,不能多并发执行,这块在直接的数据同步 Hologres 中是一致的吗。此回答整理自钉群“实时计算Flink产品交流群”

    2023-12-06 20:20:21
    赞同 展开评论 打赏
  • Flink处理100万级别的数据需要几分钟的原因可能有以下几点:

    1. 资源限制

      • Flink的计算资源(如CPU、内存和磁盘I/O)可能不足以高效地处理大量的数据。确保为Flink分配足够的资源,并考虑增加TaskManager的数量或调整每个TaskManager的slot数量。
    2. 并行度设置

      • 并行度设置不正确可能会导致性能瓶颈。检查你的作业是否设置了适当的并行度,以充分利用可用的硬件资源。
    3. 数据倾斜

      • 如果数据分布不均匀,可能导致某些任务负载过大,从而影响整体性能。使用GROUP BY等操作时,要避免数据倾斜。
    4. 网络延迟

      • 网络延迟也可能成为性能问题的一个因素。确保你的集群节点之间的网络连接是稳定的,并且带宽足够。
    5. 算法效率

      • 如果你的作业包含复杂的计算逻辑,那么算法的效率可能会影响整体性能。尝试优化算法或使用更高效的实现。
    6. 状态存储

      • 如果你的作业涉及大量状态存储,例如窗口操作或聚合,这可能会影响性能。考虑使用更有效的状态后端,如RocksDB。
    7. 检查点与保存点

      • 频繁的检查点和保存点操作可能会消耗大量的CPU和I/O资源。根据业务需求调整检查点间隔和超时时间。
    8. 外部系统集成

      • 与其他系统的交互,如读取MySQL binlog或写入Holo,可能也会对性能产生影响。确保这些系统的性能能够满足需求,并且配置正确的参数。
    9. 日志级别

      • 过高的日志级别可能会占用大量CPU和磁盘I/O资源。将日志级别设置为“INFO”或更低,可以减少不必要的日志输出。
    10. 调优参数

      • 查看Flink官方文档中关于性能调优的部分,并根据你的具体场景调整相应的参数。
    2023-12-06 20:15:26
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载