Apache Flink:如何更改缓冲区超时参数?

时间:2017-08-01 03:38:38

标签: apache-flink flink-streaming

Apache Flink缓冲任务的传出,然后将其发送到下一个任务进行处理。缓冲会影响延迟,因为我知道即使缓冲区没有填充,缓冲也会将数据发送到下一个任务。

  • 如何更改缓冲超时?我在文档中找不到任何内容。
  • 是每个Flink群集还是每个TaskManager的配置?是否可以按任务/操作员配置?
  • 据我所知,即使任务在同一个TaskManager上,Flink也会缓冲。在这种情况下,它将影响同一TaskManager中的任务/操作员。我是对的吗?

注意:我对这些数据/信息/问题的参考是O' Reilly"使用Apache Flink进行流媒体处理"和官方文件。

1 个答案:

答案 0 :(得分:1)

缓冲区超时是通过StreamExecutionEnvironment配置的作业级参数。

val env: StreamExecutionEnvironment = ???
env.setBufferTimeout(50L) // configure 50 ms buffer timeout

无法按操作员配置。此外,所有运营商的传出信道被多路复用为每个发送器 - 接收器对TaskManagers的单个物理连接。因此,所有操作员都将其输出写入需要运送到同一TaskManager的同一缓冲区。

documentation

中更详细地描述了该参数