开发者社区> 问答> 正文

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

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

展开
收起
flink小助手 2018-12-10 11:00:12 1799 0
1 条回答
写回答
取消 提交回答
  • flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。

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

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

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

    2019-07-17 23:19:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载

相关镜像