Ho seguito il link per l'impostazione di sink di TwitterSource e HDFS.Flume non scrive su HDFS a meno che non venga ucciso
comando usato per avviare l'agente:
bin/flume-ng agent -n TwitterAgent -c conf -f conf/flume-conf.properties -Dflume.root.logger=DEBUG,console
ero riuscito a fare questo, ma c'è un problema ora. L'output non viene scritto finché non si interrompe l'agente flume. Viene scritto sull'HDFS una volta che uccido il mio agente flume.
ho due domande qui:
1) come fermare un agente di canale artificiale - c'è un modo diverso di fare CTRL + C.
2) Posso fare in modo che il flume-agent scriva sull'HDFS in movimento, senza dover uccidere l'agente.
Nota: dopo aver ucciso il processo, il file che è scritto ha estensione .tmp. È previsto?
EDIT:
TwitterAgent.sinks.HDFS.hdfs.rollSize = 0
TwitterAgent.sinks.HDFS.hdfs.rollCount = 10000
TwitterAgent.sinks.HDFS.hdfs.rollInterval = 600
Grazie, questo spiega tutto ciò che immagino. Ho modificato la mia domanda con i parametri del rotolo. Il mio rollCount è 10000 e rollInterval è 600. Proverò a ridurre questi valori e riprovare. :) –
Voglio creare un singolo file al giorno, quindi non posso usare le politiche di roll, ma il mio batchSize è 1 e ottengo ancora i problemi di OP. Queste sono le configurazioni del mio rotolo: round = true, roundValue = 1, roundUnit = day, rollInterval = 0, rollSize = 0, rollCount = 0. Cosa posso fare per scaricare su HDFS in ogni evento? – ffleandro