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

各位大佬 请教一个问题 我为了解决数据倾斜问题 将一条数据拆分成了n条数据分别到下游的n个slot

各位大佬 请教一个问题 我为了解决数据倾斜问题 将一条数据拆分成了n条数据分别到下游的n个slot中去计算,在最后的算子进行n条数据的对齐。我发现n条数据对齐的耗时在大数据量的情况下比较久,这种情况大佬们有啥好建议嘛?

展开
收起
游客3oewgrzrf6o5c 2022-07-29 16:13:24 279 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    增加并行度:如果您的 Flink 程序的并行度较低,可以尝试增加并行度,以提高程序的整体吞吐量。增加并行度可以让拆分后的数据更快地到达下游算子,减少数据对齐的时间。

    使用异步对齐:如果数据对齐的过程比较耗时,可以考虑使用异步对齐的方式,即将对齐操作放在另外一个线程中进行,并使用异步回调的方式将结果传递回主线程。这样可以减少对齐操作对主线程的影响,提高程序的并发度。

    优化对齐算法:如果您的对齐算法比较简单,可以考虑优化算法,以提高对齐的效率。例如,可以尝试使用哈希算法对拆分后的数据进行分组,以减少对齐的时间。

    使用状态后端:如果您的 Flink 程序使用的是默认的内存状态后端,可以尝试使用 RocksDB 等外部状态后端,以提高程序的稳定性和性能。外部状态后端可以将状态存储在本地磁盘或者远程存储中,以减少对内存的占用,提高程序的并发度。

    2023-07-14 22:33:59
    赞同 展开评论 打赏

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

相关电子书

更多
RowKey与索引设计:技巧与案例分析 立即下载
事务、全局索引、透明分布式 立即下载
低代码开发师(初级)实战教程 立即下载