文章目录
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6a14837cb2508aa5425ec64b9232aebc.jpeg)
1.概述
flink batch sql 好几换个任务有如下打印 Flink here spill the th sort buffer data with bytes and compressed bytes
先说结论:这个是 BinaryExternalSorter是一个完全成熟的二进制格式排序器。它实现了多路归并排序。在内部,它有三个异步线程(排序、溢出、合并),它们通过一组阻塞的循环队列进行通信,形成一个闭环。 使用MemoryManager接口分配内存。因此,该组件不会超过所提供的内存限制。所以你这里是排序的时候 内存不足 溢写数据到磁盘了
没有什么大问题。可以扩大内存,可能就没有这个日志了。
2.源码分析
首先我们看BinaryExternalSorter这个类。BinaryExternalSorter
是一个完全成熟的二进制格式排序器。它实现了多路归并排序。在内部,它有三个异步线程(排序、溢出、合并),它们通过一组阻塞的循环队列进行通信,形成一个闭环。使用MemoryManager
接口分配内存。因此,该组件不会超过所提供的内存限制。
看调用的地方可以知道,这个类是排序或者join相关的。我们知道join的时候,也是会进行排序的。