Hi Hari ,
Thanks  for your reply .
Q: How did you stop the agent?
A: I was start agent from widows command prompt and simply closing the agent by 
clicking close button of command prompt

Q: the application which you wrote - does it handle resending the events when 
Avro Source throws an exception. It looks like Avro Source received a bunch of 
events, then you killed the agent and did not resend?
A: Yes  i am sending the event to source then you killed agent when sending 
event is in process .Can you please explain me how can i implement the 
re-sending event in my application 
Thanks,Mahendran
Date: Tue, 11 Nov 2014 11:50:21 -0800
From: [email protected]
To: [email protected]
CC: [email protected]
Subject: Re: File channel data lost


the application which you wrote - does it handle resending the events when Avro 
Source throws an exception. It looks like Avro Source received a bunch of 
events, then you killed the agent and did not resend?


#2 is expected. We don’t append to the file, instead we create a new file. 
There is nothing wrong with it. 


How did you stop the agent? If you killed it with kill -9 then the rename will 
not happen.

Thanks,
Hari


On Tue, Nov 11, 2014 at 2:22 AM, mahendran m <[email protected]> wrote:




Hi All ,


I have just implemented the Flume agent with below configuration 


Configuration



# example.conf: A single-node Flume configuration


# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1


# Describe/configure the source
a1.sources.r1.type = avro
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44440


# Describe the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.fileSuffix= .txt
a1.sinks.k1.hdfs.rollSize = 1048576
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.rollInterval = 0
a1.sinks.k1.hdfs.batchSize = 1000
a1.sinks.k1.hdfs.minBlockReplicas = 1
a1.sinks.k1.hdfs.path = hdfs://localhost:9000/flume/MemoryChannel/Avro
 
#using the file channel
a1.channels.c1.type = file
a1.channels.c1.capacity = 1000000
a1.channels.c1.transactionCapacity = 10000


# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1





Now i am sending batch of 1000 event to flume AVRO source and each event with 
UID incremented by one. HDFS server  create text file of 1MB each as per my 
configuration and file with .tmp extension (file which is process now). Now i 
stopping the flume agent and start it again. below are my two Expectation when 
starting flume agent again




1. Agent will resend the event from next to last successfully received event 
(in my case .tmp file has event with UID 12000 as     last so next event will 
be event with UID as 12001 )

But what append is it start event with 12500 UID , event from 12001 to 12499 is 
completely lost



2. Agent will resume the appending event to file where it left last that is 
file which is not completed (file with .tmp extension)
But agent not resumed the appending event to file where it had left . it 
created the new text file and start to append it .





Can any one explain we why my two expectation failed ?


And also file are remained with .tmp extension once i stopped the agent it 
doesn't remove this extension . can any know why these happening ? 


Regards,
Mahendran                                         

                                          
                                          

Reply via email to