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

Apache Flume .tmp强制终止启动后未清理的文件

阎志义
2023-03-14

我看到了几个与此相关的问题,但不太明白我在寻找什么。我使用的是Flume 1.8.0,在Flume代理被强制终止后,我看到了.tmp文件。这些不会在水槽药剂重新启动时清理干净。有没有任何方法可以配置Flume代理来执行清理,或者这是我需要自己处理的事情(在Flume之外)?

这是我测试的水槽 conf 文件:

agent.sources = seqGenSrc
agent.channels = memoryChannel
agent.sinks = hdfs1

# For each one of the sources, the type is defined
agent.sources.seqGenSrc.type = seq

# The channel can be defined as follows.
agent.sources.seqGenSrc.channels = memoryChannel

# Each sink's type must be defined
#agent.sinks.loggerSink.type = logger

#Specify the channel the sink should use
#agent.sinks.loggerSink.channel = memoryChannel
agent.sinks.hdfs1.type = hdfs
agent.sinks.hdfs1.hdfs.path = hdfs://localhost:9000/flume/
agent.sinks.hdfs1.hdfs.fileType = CompressedStream
agent.sinks.hdfs1.hdfs.codeC = bzip2
agent.sinks.hdfs1.hdfs.file.Prefix = myfiles-
agent.sinks.hdfs1.channel = memoryChannel

agent.sinks.hdfs1.hdfs.batchSize = 15
agent.sinks.hdfs1.hdfs.rollSize = 1048576
agent.sinks.hdfs1.hdfs.rollInterval = 20
agent.sinks.hdfs1.hdfs.rollCount = 0
agent.sinks.hdfs1.hdfs.writeFormat = Writable
agent.sinks.hdfs1.hdfs.useLocalTimeStamp = true
agent.sinks.hdfs1.hdfs.timeZone = UTC
agent.sinks.hdfs1.hdfs.callTimeout = 60000

agent.sinks.hdfs1.hdfs.idleTimeout = 0
agent.sinks.hdfs1.hdfs.maxOpenFiles = 1
agent.sinks.hdfs1.hdfs.retryInterval = 1

# Each channel's type is defined.
agent.channels.memoryChannel.type = memory

# Other config values specific to each type of channel(sink or source)
# can be defined as well
# In this case, it specifies the capacity of the memory channel
agent.channels.memoryChannel.capacity = 100

使用上面的conf文件启动Flume代理。在它向HDFS写入了几个文件后,使用杀-9杀死它。检查hdfs目录。将有一个. tmp文件。如果我们重新启动Flume代理,它将恢复向HDFS写入数据,但它不会关闭/清理. tmp文件。

共有1个答案

司徒杜吟
2023-03-14

Flume HDFS接收器创建tmp文件,一旦达到大小、时间或事件数量的限制,它就会滚动文件,意味着关闭。tmp文件,并通过移除。tmp扩展。您需要使用< code>kill -15而不是< code>kill -9,以便flume代理可以正常退出,并在停止代理之前执行这些任务。

 类似资料:
  • 问题内容: 我在一个大型组织中工作,该组织在一个共享的Jenkins集群中运行数百个工作。 我的Jenkins工作需要针对Docker容器中运行的不受信任的代码运行集成测试。我担心当我的詹金斯(Jenkins)工作突然终止(例如,工作中止或超时)时,我将身处孤儿容器中。 我已经尝试过https://github.com/moby/moby/issues/1905,但它对我不起作用(这是因为它仅适用

  • PHP程序的启动可以看作有两个概念上的启动,终止也有两个概念上的终止。 其中一个是PHP作为Apache(拿它举例,板砖勿扔)的一个模块的启动与终止, 这次启动php会初始化一些必要数据,比如与宿主Apache有关的,并且这些数据是常驻内存的! 终止与之相对。 还有一个概念上的启动就是当Apache分配一个页面请求过来的时候,PHP会有一次启动与终止,这也是我们最常讨论的一种。 现在我们主要来看一

  • 它的工作很好,但当我把它封闭在我的如果不喜欢 这给了我一个例外: org.apache.jasper.jasperexception:/jsp/custmngmt/reports/viewCustomerDepositReportCriteriaForOldReceipt.jsp(356,0)未终止 我已经测试了条件,它确实输入了if部分,但在通过form标记时会导致异常。我不明白。请帮帮我。

  • 问题内容: 我是Ubuntu(Linux tbh)的新手。我在启动MongoDB服务时遇到问题。我想使用Ruby on Rails和MongoDB创建Web应用程序,但是mongo似乎无法启动。 我在Ubuntu上进行了此MongoDB安装,直到安装完成,所有安装均顺利进行 mongod.log 那么我在做错什么还是其他问题呢? 问题答案: kometen的解决方案 文件/tmp/mongodb-

  • 我有一个脚本,需要启动一个程序,以便该程序创建和填充一些文件夹。在脚本继续之前,程序只需短暂运行,然后关闭。 但是,当程序被终止时,脚本不会继续。我该怎么做? 我以为我是在子shell中启动程序,但我不确定是否是这样。

  • 我们的Spring批处理作业在处理输入文件时突然失败。当我试图重新运行批处理作业时,它会抛出以下消息。 02:27:09.088[main]调试O.S.B.C.R.dao.jdbcstepExecutionDAO-在更新StepExecution之前截断长消息,原始消息为:org.springframework.batch.core.jobExecutionException:无法从开始状态重新启