我需要得到您的帮助以检查flume为什么需要花费时间将平面文件上传到HDFS。我尝试上载了1个文件(10MB大小),但17小时过去了,它仍然以“.tmp”上传。当我检查了日志详细信息,就好像它卡在通道:Flume需要时间将文件上传到HDFS
11月10日,X:XX:XX.XXX PM信息org.apache.flume.channel.file.LogFile关闭RandomReader /数据5/flumedata/log-1是
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader/DATA5/flumedata /日志-2
11月10日,X :XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader/data5/flumedata/log-3
Nov 10,X:XX:XX.XXX PM INFO org.apache.flum e.channel.file.LogFile关闭RandomReader/DATA5/flumedata /日志-4-
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader/DATA5/flumedata /日志-5
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader/DATA5/flumedata /登录6
11月10日,X: XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader/DATA5/flumedata /登录7
11月10日,X:XX:XX.XXX PM INFO org.apache.flume。 channel.file.LogFile关闭RandomReader/data5/flumed ATA /对数8
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.EventQueueBackingStoreFile CheckpointBackupCompleted
11月10日,X:XX:XX.XXX PM INFO有机.apache.flume.channel.file.LogFile关闭RandomReader/data5/flumedata/log-9
Nov 10,X:XX:XX.XXX PM INF INFO org.apache.flume.channel.file.LogFile关闭RandomReader/DATA5/flumedata /日志-10
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader/DATA5/flumedata /登入11
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader/DATA5/flumedata /日志-12
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader/DATA5/flumedata /日志-13
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile闭RandomReader/DATA5/flumedata /日志-14
11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile闭RandomReader/DATA5/flumedata /日志-15
Nov 10,X:XX:XX.XXX PM INFO org.apache.flume.channel.file。日志文件关闭RandomReader /数据5/flumedata /注销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
欣赏这个
谢谢你的回应!实际上,我正在寻找可以有效使用Flume的选项,而无需人员手动终止进程以将所有数据全部上传到HDFS,消除漫长的等待时间并在上传时将其保持为1个文件(因为从现在开始文件分割)。我错过了配置中的任何东西吗? – bertsnipe
@bertsnipe Flume将源数据流传输到目的地。它假设数据是无止境的。因此,当您将另一个文件放入假脱机目录时,Flume会将新文件发送到通道,并且剩下的第一个文件的任何数据将发送到sink和hdfs。如果你只想用Flume发送一个文件,你必须手动清除它。我也是Flume的新手,如果你有更好的解决方案,请纠正我。 –
另外,您的HDFS接收器配置禁止滚动文件。所以所有的数据都应该放在HDFS上的单个文件中。 –