Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink Flink过程功能背压问题_Apache Flink_Flink Streaming - Fatal编程技术网

Apache flink Flink过程功能背压问题

Apache flink Flink过程功能背压问题,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我在Flink作业中实现了一个流程功能,当注入大容量(10mil记录)时,流程功能似乎已锁定,并导致前后的操作员暂停并等待刷新、交换间隔 这似乎是Flink source一直在等待,直到后来的操作员从繁忙中解脱出来。这是Flink中的背压处理吗?我们是否可以配置让流在没有此类间隔的情况下等待?如果过程被阻止,数据将流向哪里?据我所知,反压力并不是Flink所做的明确的事情。相反,这是下游运营商无法接受更多数据的自然结果 听起来你需要做的是看看如何让你的工作更平行。这可能与简单地增加并行性一样简

我在Flink作业中实现了一个流程功能,当注入大容量(10mil记录)时,流程功能似乎已锁定,并导致前后的操作员暂停并等待刷新、交换间隔


这似乎是Flink source一直在等待,直到后来的操作员从繁忙中解脱出来。这是Flink中的背压处理吗?我们是否可以配置让流在没有此类间隔的情况下等待?

如果
过程被阻止,数据将流向哪里?据我所知,反压力并不是Flink所做的明确的事情。相反,这是下游运营商无法接受更多数据的自然结果

听起来你需要做的是看看如何让你的工作更平行。这可能与简单地增加并行性一样简单,但如果您的数据被设置了密钥,并且问题实际上是一个密钥在一个时间单位内接收到的数据超过了可以有效处理的数据,那么这可能会更加复杂。在这种情况下,您可能需要将密钥实际设置为跨多个分区分割数据


但是,在不了解应用程序的细节的情况下,这些都只是猜测

它使用60k唯一密钥运行,每个密钥为1kb,还测试了下游可以处理比processfunction高得多的吞吐量。当计时器到达并冲出时,可能会导致锁定,Flink在这种情况下内部是如何工作的?有什么想法或输入吗?仍然面临着由此导致的性能问题,而且似乎提供的计时器越大,刷新之间的间隔就越大,现在它就像一个批处理一样工作。要做的一件事是查看您的每个子任务是否获得相同数量的记录。也许有些分区是不均匀的,以至于您的一个子任务线程实际上导致其他线程阻塞,因为它处理了太多的数据。还要记住,如果您正在执行聚合类型操作,它必须在任务管理器之间进行通信。因此,网络通信中的任何瓶颈都会导致您背负压力。你可以看到所有的数据流是否都是一样的。你好,joshua,谢谢你的观点。是的,我确实监控了分配的每个taskmanager插槽的吞吐量,它们似乎均匀分布。我还确保测试中有足够的唯一键,这样就不会有数据倾斜。