我需要得到您的协助,以检查为什么水槽需要时间上传平面文件到HDFS。我试着上传一个文件(10‘s大小),但17个小时过去了,它仍然在上传".tmp“。当我查看日志详细信息时,它好像卡在了频道里:
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-1 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-2 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-3 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-4 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-5 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-6 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-7 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-8 11月10日,org.apache.flume.channel.file.EventQueueBackingStoreFile CheckpointBackupCompleted X:XX:XX.XXX PM INFO 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-9 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log- 10 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-11 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-12 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-13 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-14 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/flumedata/log-15 11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader /data5 5/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感谢你对此的帮助
发布于 2016-11-10 11:47:07
我想所有的数据都已经发送了。您可以检查要发送的文件是否已删除到file.name.COMPLETED。如果已删除该文件,则应已发送该文件。
但是,可能仍有一些数据在文件通道中,因为数据是批量传输的。如果留下的数据大小小于批处理大小,则它将留在通道中。
为了完成发送,您可以使用kill -SIGTERM flume_process_id来终止进程。当flume接收到此信号时,它会刷新所有留给HDFS的数据。而HDFS上的文件将被重命名,即删除.tmp后缀。
https://stackoverflow.com/questions/40525197
复制相似问题