반응형

데이터 엔지니어로 살아가기 163일째(kafka, camus) 


기존에 kafka가 2개의 broker로 동작하고 있었는데 broker한대를 추가하게 되었다.


broker추가와 동시에 partition, replica 설정을 변경하는 작업을 하였다.


알파에서 테스트가 진행되었고 리얼에 적용을 하였는데 특정 topic으로 데이터를 처리하지 못하는 이슈가 발생하였다.


topic중 nginx - fluentd를 통해서 들어오는 데이터는 정상적으로 받고 있었지만


api서버에서 kafkaAppender로 로그를 produce하고 있는 topic이 정상적으로 동작하지 않았다.


원인은 api서버의 hosts파일에 kafka브로커들의 ip와 hostname이 등록되어 있지 않았기 때문이다.


기본적으로 api통신을 할 경우 acl이 뚫려 있고 어플리케이션 내부에서 ip로 목적지가 등록이 되어 있는 경우


문제없이 동작하여야 하지만 클라우데라를 통해 운영되고 있는 주키퍼, 카프카 등 하둡에코시스템이 호스트네임을 기반으로


서로 통신을 하고 있었기 때문에 ip정보만으로는 카프카 브로커를 찾아가지 못하는 문제가 있었다.


이번 문제로 많은 시간을 삽질을 하게되었지만 카프카 offset부터 camus가 어떤식으로 offset을 관리하고 있는지에 대해서


좀 더 깊게 들여다 볼수 있는 시간이 되었다.


camus는 현재 gobblin이라는 프로젝트로 넘어가 관리되고 있는 듯 싶었다.


카프카 특정 topic의 데이터를 hdfs에 적재해야한다면 gobblin을 검토해보면 좋을 듯 싶다.


이상~

반응형

+ Recent posts