为什么MapReduce作业没有完全加载附加文件



我有一个水槽,可以将数据流式传输到HDFS接收器(附加到同一文件),我可以"猫"并从HDFS中看到它。但是,MapReduce作业只拾取第一批被刷新的批次(bacthSize = 100)。其余的没有被捡起来,尽管我可以猫看到其余的。当我在文件滚动(关闭)后执行 MapRecue 作业时,它会拾取所有数据。您知道为什么 MR 作业即使存在也无法找到批处理的其余部分吗?

我所知,Flume(在我的例子中为1.4)根本没有真正附加到HDFS文件中。当 HDFS 接收器启动时,它将创建一个 0 kb 的 .tmp 文件,直到它被滚动/重命名。增量记录尚未在 HDFS 上,而是在通道上的 Flume 代理中。因此,在重命名事件(.tmp到最终文件名)之前,您将无法访问新到达的数据。(MR FileInputFormat 过滤所有以"_filename"或".filename"开头的文件)

相关内容

  • 没有找到相关文章

最新更新