Podążyłem za link w celu ustawienia zlewu TwitterSource i HDFS.Flume nie zapisuje do HDFS, chyba że zostanie zabity
poleceń używany do uruchamiania agenta:
bin/flume-ng agent -n TwitterAgent -c conf -f conf/flume-conf.properties -Dflume.root.logger=DEBUG,console
I udało się to robić, ale jest jeden problem teraz. Dane wyjściowe nie są zapisywane do momentu zatrzymania środka flume. Zostaje napisany do HDFS, kiedy zabiję mojego agenta flume.
Mam dwa pytania tutaj:
1) Jak zatrzymać środek flume - Czy jest jakiś inny sposób niż robią CTRL + C.
2) Czy mogę dokonać zapisu przez flume-agent na HDFS w ruchu, bez konieczności zabijania agenta.
Uwaga: po zabiciu procesu zapisany plik ma rozszerzenie .tmp. Czy to jest oczekiwane?
EDIT:
TwitterAgent.sinks.HDFS.hdfs.rollSize = 0
TwitterAgent.sinks.HDFS.hdfs.rollCount = 10000
TwitterAgent.sinks.HDFS.hdfs.rollInterval = 600
Dzięki, że to wszystko tłumaczy. Zmieniłem moje pytanie za pomocą parametrów rolki. Mój rollCount wynosi 10000, a rollInterval wynosi 600. Spróbuję zmniejszyć te wartości i spróbować ponownie. :) –
Chcę utworzyć pojedynczy plik dziennie, więc nie mogę używać zasad roll, ale mój batchSize to 1 i nadal mam problemy z OP. Oto moje konfiguracje ról: round = true, roundValue = 1, roundUnit = day, rollInterval = 0, rollSize = 0, rollCount = 0. Co mogę zrobić, aby wypuścić do HDFS w każdym wydarzeniu? – ffleandro