gpt4 book ai didi

hdfs - Flume HDFS接收器: Remove timestamp from filename

转载 作者:行者123 更新时间:2023-12-02 00:10:38 24 4
gpt4 key购买 nike

我已经为我的应用程序配置了flume代理,其中源是Spooldir,接收器是HDFS

我能够在 hdfs 中收集文件。

代理配置为:

agent.sources = src-1
agent.channels = c1
agent.sinks = k1

agent.sources.src-1.type = spooldir
agent.sources.src-1.channels = c1
agent.sources.src-1.spoolDir = /home/Documents/id/
agent.sources.src-1.deserializer=org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder
agent.sources.src-1.fileHeader=true
agent.channels.c1.type = file
agent.sources.src-1.basenameHeader=true
agent.sources.src-1.basenameHeaderKey=basename

agent.sinks.k1.type = hdfs
agent.sinks.k1.channel = c1
agent.sinks.k1.hdfs.path =hdfs://localhost:8020/user/flume/events/
agent.sinks.k1.hdfs.filePrefix = %{basename}
agent.sinks.k1.hdfs.fileHeader = true
agent.sinks.k1.hdfs.fileType = DataStream

我有以下格式的 hdfs 文件:

/flume/events/file1.txt.1411543838171 /flume/events/file2.txt.1411544272696

我想知道我可以删除为文件名的每个事件自动生成的时间戳(1411543838171)/唯一编号吗?

最佳答案

仅通过使用配置似乎无法删除时间戳。如果您了解 HDFS Sink 的工作原理,您会发现以下内容:

long counter = fileExtensionCounter.incrementAndGet();
String fullFileName = fileName + "." + counter;

其中fileExtensionCounterfileExtensionCounter = new AtomicLong(clock.currentTimeMillis());

您可以查看接收器的代码herehere对于作家来说。

如果您想要将更多事件放入单个文件中,那么您可以查看接收器属性

  • 滚动时间
  • 卷尺寸
  • rollCount
  • 批量大小

关于hdfs - Flume HDFS接收器: Remove timestamp from filename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33820163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com