Apache Flink:如何更改缓冲区超时参数?
Apache Flink: How to change the buffer timeout parameter?
Apache Flink 缓冲任务的传出,然后将其发送给下一个任务进行处理。缓冲会影响延迟,据我所知,即使缓冲区未满,缓冲也会超时将数据发送到下一个任务。
- 如何更改缓冲超时?我在文档中找不到任何内容。
- 是按Flink集群配置还是按TaskManager配置?可以根据 task/operator 配置吗?
- 据我所知,即使任务在同一个 TaskManager 上,Flink 也会缓冲。在这种情况下,它将影响同一个 TaskManager 中的 tasks/operators。我说得对吗?
注意:我对此 data/information/questions 的参考是 O'Reilly 的 "Streaming Processing with Apache Flink" 和官方文档。
缓冲区超时是一个作业级参数,通过StreamExecutionEnvironment
配置。
val env: StreamExecutionEnvironment = ???
env.setBufferTimeout(50L) // configure 50 ms buffer timeout
无法为每个运营商配置。此外,所有操作员的传出通道都被多路复用到每对 TaskManager 的发送方-接收方的单个物理连接中。所以所有操作员都将他们的输出写入同一个缓冲区,它需要被传送到同一个 TaskManager。
参数在 documentation 中有更详细的描述。
Apache Flink 缓冲任务的传出,然后将其发送给下一个任务进行处理。缓冲会影响延迟,据我所知,即使缓冲区未满,缓冲也会超时将数据发送到下一个任务。
- 如何更改缓冲超时?我在文档中找不到任何内容。
- 是按Flink集群配置还是按TaskManager配置?可以根据 task/operator 配置吗?
- 据我所知,即使任务在同一个 TaskManager 上,Flink 也会缓冲。在这种情况下,它将影响同一个 TaskManager 中的 tasks/operators。我说得对吗?
注意:我对此 data/information/questions 的参考是 O'Reilly 的 "Streaming Processing with Apache Flink" 和官方文档。
缓冲区超时是一个作业级参数,通过StreamExecutionEnvironment
配置。
val env: StreamExecutionEnvironment = ???
env.setBufferTimeout(50L) // configure 50 ms buffer timeout
无法为每个运营商配置。此外,所有操作员的传出通道都被多路复用到每对 TaskManager 的发送方-接收方的单个物理连接中。所以所有操作员都将他们的输出写入同一个缓冲区,它需要被传送到同一个 TaskManager。
参数在 documentation 中有更详细的描述。