flume需要时间将文件上传到hdfs

pw9qyyiw  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(364)

我需要你的帮助,关于检查为什么flume需要时间上传平面文件到hdfs。我试着上传一个文件(10mb大小),但是,17个小时过去了,它仍然上传“.tmp”。当我查看日志详细信息时,它似乎被卡在了频道中:
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-1
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-2
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-3
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-4
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-5
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-6
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-7
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-8
11月10日x:xx:xx. pm info org.apache.flume.channel.file.eventqueuebackingstorefile checkpointbackupcompleted
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-9
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-10
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-11
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-12
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-13
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-14
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-15
11月10日,x:xx:xx. pm info org.apache.flume.channel.file.logfile.reader/data5/flumedata/log-16
配置如下:

agent.sources = source1
agent.channels = channel1
agent.sinks = sinks1

agent.sources.source1.type = spooldir
agent.sources.source1.spoolDir = /data1/forupload
agent.sources.source1.channels = channel1
agent.sources.source1.basenameHeader = true

agent.channels.channel1.type = file
agent.channels.channel1.capacity = 1000000
agent.channels.channel1.transactionCapacity = 10000
agent.channels.channel1.checkpointDir = /data5/checkpoint
agent.channels.channel1.dataDirs = /data5/flumedata
agent.channels.channel1.useDualCheckpoints = true
agent.channels.channel1.backupCheckpointDir = /data5/backupcheckpoint
agent.channels.channel1.maxFileSize = 900000000

agent.sinks.sinks1.type = hdfs
agent.sinks.sinks1.hdfs.path = /user/flume
agent.sinks.sinks1.hdfs.filetype = DataStream
agent.sinks.sinks1.channel = channel1
agent.sinks.sinks1.hdfs.filePrefix = %{basename}
agent.sinks.sinks1.hdfs.fileSuffix = .csv
agent.sinks.sinks1.hdfs.rollInterval = 0
agent.sinks.sinks1.hdfs.rollSize = 0
agent.sinks.sinks1.hdfs.rollCount = 0

感谢你的帮助

wbrvyc0a

wbrvyc0a1#

我想所有的数据都已经发送了。您可以检查要发送的文件是否已被删除 file.name.COMPLETED . 如果已删除,则应已发送该文件。
但是,可能有一些数据仍在文件通道中,因为数据是批量传输的。如果剩余数据的大小小于批处理大小,它将保留在通道中。
为了完成发送,您可以使用 kill -SIGTERM flume_process_id 终止进程。当flume接收到这个信号时,它会将所有剩下的数据刷新到hdfs。hdfs上的文件将被重命名,即删除 .tmp 后缀。

相关问题