복붙노트

[HADOOP] 루프에서 'flume.conf에서 변경 사항 확인'받기

HADOOP

루프에서 'flume.conf에서 변경 사항 확인'받기

Apache Flume 1.4.0을 사용하여 로그 파일 (auth.log)을 수집하고 HDFS (Hadoop 2.6.0)에 저장합니다. 사용 된 명령은 다음과 같습니다.

 bin/flume-ng agent --conf ./conf/ -f flume.conf -Dflume.root.logger=DEBUG,console -n agent

flume.conf 파일에는 다음이 포함됩니다.

agent.channels.memory-channel.type = memory

agent.sources.tail-source.type = exec
agent.sources.tail-source.command = tail -F /var/log/auth.log
agent.sources.tail-source.channels = memory-channel

agent.sinks.log-sink.channel = memory-channel
agent.sinks.log-sink.type = logger
agent.sinks.hdfs-sink.channel = memory-channel
agent.sinks.hdfs-sink.type = hdfs
agent.sinks.hdfs-sink.hdfs.path = hdfs://localhost:54310/usr/auth.log
agent.sinks.hdfs-sink.hdfs.fileType = DataStream

agent.channels = memory-channel
agent.sources = tail-source
agent.sinks = log-sink hdfs-sink

명령이 실행 된 후 다음 메시지가 루프에서 계속 반복됩니다.

(conf-file-poller-0) [DEBUG - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:126)] Checking file:flume.conf for changes

그 이유는 무엇일까요?

해결법

  1. ==============================

    1.Flume은 기본적으로 30 초마다 변경 사항을 찾는 구성 파일을 검사합니다 (하드 코딩되어 있음). 그런 다음 새로운 구성을 적용하기 위해 영향을받는 구성 요소 (소스, 싱크 또는 채널)를 다시 생성합니다. 이 동작을 비활성화하려면 --no-reload-conf 옵션을 사용하여 에이전트를 시작하기 만하면됩니다.

    Flume은 기본적으로 30 초마다 변경 사항을 찾는 구성 파일을 검사합니다 (하드 코딩되어 있음). 그런 다음 새로운 구성을 적용하기 위해 영향을받는 구성 요소 (소스, 싱크 또는 채널)를 다시 생성합니다. 이 동작을 비활성화하려면 --no-reload-conf 옵션을 사용하여 에이전트를 시작하기 만하면됩니다.

  2. from https://stackoverflow.com/questions/29094499/getting-checking-flume-conf-for-changes-in-a-loop by cc-by-sa and MIT license