当前位置: 首页 > 知识库问答 >
问题:

水槽假脱机目录重命名文件。甚至在水槽代理开始假脱机之前完成

东门俊智
2023-03-14

我有我有水槽代理如下

agent1.sources = Weather
agent1.sources.Weather.type = spooldir
agent1.sources.Weather.spoolDir = /Weather/Docs
agent1.sources.Weather.channels = MemChannel
agent1.channels = MemChannel
agent1.channels.MemChannel.type = memory
agent1.channels.MemChannel.capacity = 10000
agent1.channels.MemChannel.transactionCapacity = 1000
agent1.channels.MemChannel.deletePolicy = immediate
agent1.sinks = HDFS
agent1.sinks.HDFS.channel = MemChannel
agent1.sinks.HDFS.type = hdfs
agent1.sinks.HDFS.hdfs.path = hdfs://localhost:8020/user/flume/input/
agent1.sinks.HDFS.hdfs.fileType = DataStream
agent1.sinks.HDFS.hdfs.writeFormat = Text
agent1.sinks.HDFS.hdfs.batchSize = 1000
agent1.sinks.HDFS.hdfs.rollSize = 0
agent1.sinks.HDFS.hdfs.rollCount = 10000

假脱机目录中的文件将自动重命名为 。已完成,文件应重命名为 。在水槽代理将该文件写入 HDFS 后完成,但在我的情况下,它将文件重命名为 .在代理运行之前已完成。它还将文件重命名为 .即使我只是手动将文件复制到假脱机目录,也已完成。

还有一个问题是删除策略即使在文件复制到HDFS后也不会删除文件。

代理将假脱机目录文件随机写入HDFS。

它还在HDFS创建了大量的tmp文件。

我写经纪人的时候是不是做错了什么,还是我遗漏了经纪人的任何内容。。??

请帮助我解决此问题。

提前感谢

共有1个答案

华瀚漠
2023-03-14

我怀疑Flume的行为符合设计,您可能会对事情的顺序感到困惑。您可以查看日志来证明这一点。

Flume是一个队列。spooldir源将从文件中读取行,并将它们放入队列,然后删除或重命名文件。在该操作序列中没有任何东西等待事件被写入接收器。

正如我所说,你可以阻止HDFS,你会在日志中看到这种行为。MemChannel上的队列大小将增加,直到重新打开HDFS。

 类似资料:
  • 我正在尝试使用水槽假脱机目录摄取到 HDFS(SpoolDir 我正在使用Cloudera Hadoop 5.4.2。(Hadoop 2.6.0,Flume 1.5.0)。 它适用于较小的文件,但适用于较大的文件时失败。请在下面找到我的测试场景: < li >千字节到50-60兆字节的文件,处理时没有问题。 < li >大于50-60MB的文件,它将大约50MB写入HDFS,然后我发现flume代

  • 我正在为我公司的 POC 实施一个小型 hadoop 集群。我正在尝试使用Flume将文件导入HDFS。每个文件都包含如下 JSON 对象(每个文件 1 个“长”行): “objectType”是数组中对象的类型(例如:事件、用户…)。 这些文件稍后将由多个任务根据“对象类型”进行处理。 我正在使用spoolDir源和HDFS接收器。 我的问题是: > 当flume写入HDFS时,是否可以保留源文

  • 问题内容: 好的,所以我对oracle完全满意。现在,这已经不复存在了; 我认为您可以了解我在下面尝试做的事情。对于找到的每个存储过程,将DDL输出到具有其名称的文件名。 问题是我不知道如何获取假脱机目标来拾取由游标设置的FileName的值。 关于我要去哪里错的任何想法吗?如果有人举这个例子,我将不胜感激。 我觉得我必须在周围跳舞,因为如果我最初创建一列, 我得到一个结果,我似乎无法动态地更改&

  • 刚开始学习Apache Flume。我遵循Flume官方入门网站上的说明: https://cwiki.apache.org/confluence/display/FLUME/Getting开始 按照上面链接上的说明操作后,几乎一切都很好。但是后来我找不到任何日志文件。我想日志文件在{flume.directory}/logs下。有办法找到水槽日志文件吗? 这是我的log4j.properties

  • 我试图建立flume,这样每个代理可以有多个接收器,最终有多个通道和源(现在只看多个通道)。我有一个类似这样的配置文件和一个ruby模板。我不知道如何将功能添加到模板文件中,以便每个代理可以将一个事件发送到多个通道

  • 本文向大家介绍假脱机和缓冲之间的区别,包括了假脱机和缓冲之间的区别的使用技巧和注意事项,需要的朋友参考一下 在计算机性能方面,主要因素是多任务处理,即CPU如何在不同的输入输出子系统之间划分和执行进程。为了最有效地处理任务,计算机系统使用各种方法来计划任务,加快计算速度并改善Web浏览,其中假脱机和缓冲是主要方法。 以下是假脱机和缓冲之间的重要区别。 序号 键 假脱机 正在缓冲 1 定义 后台打印