工作节点-与Apache Flink的文件系统关联

时间:2018-09-26 11:55:53

标签: apache-flink

我有一个特定的监控系统,在每个受监控的服务器上,有成千上万个文件本地保存(没有HDFS)。我想使用flink查询这些文件。如果我在每台计算机上创建一个工作程序节点,并且它们查询特定文件,那么主节点将如何知道将此任务发送到相关文件所在的节点?我的退休计划之一是最大程度地减少网络流量并避免在节点之间移动数据。有办法以某种方式“提示”它吗?

1 个答案:

答案 0 :(得分:0)

我不确定“ ...使用Flink查询文件”是什么意思。您可以创建一个自定义SourceFunction,它知道如何读取本地文件,然后使用Flink进行解析/处理,并通过Queryable State公开结果。如果此流中没有分区,则所有这些链接的运算符都将在任务管理器的同一插槽中运行,从而最大程度地减少网络流量。

您想要将SourceFunction的并行度设置为等于节点数(因此也等于任务管理器数)。但是,您仍然需要确保Flink不会在同一任务管理器(因此在同一节点)上运行同一SourceFunction的两个,这对您不起作用。

通常,Flink对精确放置任务不提供太多支持。我认为,如果您将taskmanager.numberOfTaskSlots设置为1,则可能会迫使它为每个任务管理器部署一个单独的SourceFunction(及其后的链式运算符),但是您必须尝试一下。

致谢

-肯