2017-08-01 17 views
1

Apache Flink缓存任务的传出,然后发送下一个任务进行处理。缓冲会影响延迟,因为我知道即使没有填充缓冲区,缓冲也会发送数据到下一个任务。Apache Flink:如何更改缓冲区超时参数?

  • 我该如何改变缓冲超时?我找不到任何文件。
  • 是每个Flink群集或每个TaskManager的配置?它可以根据任务/操作员进行配置吗?
  • 因为我知道Flink缓冲区,即使任务在同一个TaskManager上。在这种情况下,它将影响同一个TaskManager中的任务/操作员。我对吗?

注:我给这家数据/信息/问题的参考是O'Reilly的“流处理与Apache弗林克”和官方文件。

回答

1

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

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

它不能为每个操作员配置。此外,所有运营商的出局信道都被复用为每个发送器 - 接收器对TaskManager的单个物理连接。因此,所有运算符都将其输出写入到需要发送到同一个TaskManager的同一缓冲区中。

该参数在documentation中有更详细的描述。