2014-09-24 13 views
5

Sto provando il flume per qualcosa di molto semplice, in cui vorrei spingere il contenuto dei miei file di registro su S3. Sono stato in grado di creare un agente flume che avrebbe letto il contenuto da un file di log di accesso Apache e utilizzato un sink di logger. Ora sto cercando di trovare una soluzione in cui posso sostituire il sink del logger con un "sink S3". (So ​​che questo non esiste per impostazione predefinita)Usa flume per lo streaming di dati su S3

Stavo cercando alcune indicazioni per indirizzarmi nel percorso corretto. Di seguito è riportato il file delle proprietà di test che sto utilizzando al momento.

a1.sources=src1 
a1.sinks=sink1 
a1.channels=ch1 

#source configuration 
a1.sources.src1.type=exec 
a1.sources.src1.command=tail -f /var/log/apache2/access.log 

#sink configuration 
a1.sinks.sink1.type=logger 

#channel configuration 
a1.channels.ch1.type=memory 
a1.channels.ch1.capacity=1000 
a1.channels.ch1.transactionCapacity=100 

#links 
a1.sources.src1.channels=ch1 
a1.sinks.sink1.channel=ch1 

risposta

14

S3 è costruita sopra HDFS modo da poter utilizzare HDFS sink, è necessario sostituire il percorso HDFS per il secchio in questo modo. Non dimenticare di sostituire AWS_ACCESS_KEY e AWS_SECRET_KEY.

agent.sinks.s3hdfs.type = hdfs 
agent.sinks.s3hdfs.hdfs.path = s3n://<AWS.ACCESS.KEY>:<AWS.SECRET.KEY>@<bucket.name>/prefix/ 
agent.sinks.s3hdfs.hdfs.fileType = DataStream 
agent.sinks.s3hdfs.hdfs.filePrefix = FilePrefix 
agent.sinks.s3hdfs.hdfs.writeFormat = Text 
agent.sinks.s3hdfs.hdfs.rollCount = 0 
agent.sinks.s3hdfs.hdfs.rollSize = 67108864 #64Mb filesize 
agent.sinks.s3hdfs.hdfs.batchSize = 10000 
agent.sinks.s3hdfs.hdfs.rollInterval = 0 
+0

cosa se non avete accesso ai HDFS? – user99999991

0

questo ha un senso, ma può rollSize di questo valore essere accompagnato da

agent_messaging.sinks.AWSS3.hdfs.round = true 
agent_messaging.sinks.AWSS3.hdfs.roundValue = 30 
agent_messaging.sinks.AWSS3.hdfs.roundUnit = minute 
Problemi correlati