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을 이용하는 것이 좋을 것 같다.
'scribbling' 카테고리의 다른 글
Javaone 2012 자료 (0) | 2012.10.16 |
---|---|
Hive 작업-로그를 whitespace(공백) 단위로 출력/수집 하고 Hive 필드로 구성하기 (0) | 2012.09.20 |
hadoop 설치 (hdfs) (0) | 2012.09.17 |
Hadoop - Name node is in safe mode. 에러 해결 (0) | 2012.09.17 |
Hadoop 사용시 java.io.IOException: config() 발생 (1) | 2012.09.14 |