Flume需要时间将文件上传到HDFS

时间:2016-11-10 10:24:27

标签: hdfs cloudera flume flume-ng bigdata

我需要您的帮助来检查为什么水槽花费时间将平面文件上传到HDFS。我尝试上传只有1个文件(10MB大小)但是,17个小时后它还在用#34; .tmp"上传。当我查看日志详细信息时,它似乎陷入了频道:

  

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-1

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-2

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-3

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-4

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-5

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-6

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-7

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-8

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.EventQueueBackingStoreFile CheckpointBackupCompleted

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-9

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-10

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-11

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-12

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-13

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-14

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / data5 / flumedata / log-15

     

11月10日,X:XX:XX.XXX PM INFO org.apache.flume.channel.file.LogFile关闭RandomReader / 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

感谢您对此的帮助

1 个答案:

答案 0 :(得分:0)

我认为所有数据都已发送。您可以检查要发送的文件是否已移至file.name.COMPLETED。如果已将其删除,则该文件应已发送。

但是,由于数据是批量传输的,因此可能仍有一些数据仍在文件通道中。如果剩下的数据大小小于批量大小,它将保留在通道中。

为了完成发送,您可以使用kill -SIGTERM flume_process_id来终止该过程。当水槽收到此信号时,它会清除留给HDFS的所有数据。并且将重命名HDFS上的文件,即删除.tmp后缀。