开发者社区> 问答> 正文

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

flink小助手 2018-12-10 11:00:12 417

我有一个特定的监控系统,每个受监控的服务器上都有数千个本地保存的文件(没有HDFS)。我想用flink来查询这些文件。如果我在每台机器上创建一个工作节点并且它们查询特定文件,主节点将如何知道将此任务发送到相关文件所在的节点?我推荐的一个方法是最小化网络流量并避免在节点之间移动数据。有没有办法以某种方式“暗示”它?

分享到
取消 提交回答
全部回答(1)
  • flink小助手
    2019-07-17 23:19:05

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

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

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

    0 0
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题
推荐课程