flume-ng은 apache incubating 프로젝트로서, 기존 flume 버그를 없애고자 새롭게 만들고 있는 프로젝트이다.

최신 버전은 1.3.0 snapshot 이고, 안정적인 버전은 1.2.0이다.

flume 기존 버전은 0.9.4은 부하가 많을 때 쓸 수 없어서 제외했다.

그러나 hdfs sink 로 테스트를 해보니 hdfs로 저장을 하지 못하고 주어진 rolling시에도 rolling도 못했다.

 

flume이나 flume-ng는 어느 정도 안정화 할 때까지 안 쓸 예정이다.

 

 

<구성>

 

이미지 출처 : http://archive.cloudera.com/cdh4/cdh/4/flume-ng/FlumeUserGuide.html

 

<설치 버전>

flume-ng : 1.2

hdfs : 1.0.1, 1.0.3

 

 

<테스트>

agent와 collector를 두고, collector의  sink type을 파일로 했더니 동작은 잘 된다.

collector의 type을 hdfs로 두었더니. 아래와 같은 로그만 나온다. hdfs안에서 rolling이나 file created가 되었는지 찾아볼 수 없었다.

 

2012-09-17 16:53:38,590 (hdfs-hf-call-runner-0) [INFO - org.apache.flume.sink.hdfs.BucketWriter.doOpen(BucketWriter.java:187)] Creating hdfs://localhost:9000/flume/log.1347868418261.tmp
2012-09-17 16:53:48,678 (hdfs-hf-roll-timer-0) [INFO - org.apache.flume.sink.hdfs.BucketWriter.renameBucket(BucketWriter.java:370)] Renaming hdfs://localhost:9000/flume/log.1347868418261.tmp to hdfs://localhost:9000/flume/log.1347868418261

 

또한 배포와 테스트를 한꺼번에 계속 해 보았보니, log file 자체를 flumen-ng 데몬이 lock를 하여 독점적으로 쓰는 일이  발생했다. 서비스에서 log file을 write를 하지 못해 thread가 튀었고, 요청 자체를 더 이상 받지 못하는 버그가 생겼다.

 

<관련 문서>

https://people.apache.org/~mpercy/flume/flume-1.2.0-incubating-SNAPSHOT/docs/FlumeUserGuide.html

http://archive.cloudera.com/cdh4/cdh/4/flume-ng/FlumeUserGuide.html

 

<결론>

flume-ng 1.2.0은 현재 사용하고 있다는 reference 가 없고. hdfs 연동에 문제가 있다.

안정성/기능이 발전 중이니. 기다렸다가 쓰는 것이 좋을 것 같다.

 

로그 분석은 역시 rsync나 따로 만든 daemon을 이용하는 것이 좋을 것 같다.

Posted by '김용환'
,