[입 개발] kafka 0.8 설치 방법

해당 블로그는 KT Olleh UCloud Biz의 지원을 받고 있습니다.

Kafka는 LinkedIn에서 만든 분산 메시지 큐로, 디스크를 이용함에도 꽤 빠른 처리속도를 보장하는(더 복잡한 부분은 논문을 보셔야 쿨럭…) 소프트웨어입니다. 주로, 로그를 수집하기 전에, 이벤트 처리를 위해서, 데이터 버스로써, 또는 일종의 버퍼로 HBase나, 다른 툴들의 앞에서 이벤트 전달을 여과해주는 역할을 주로 합니다.

0.8로 진행하면서 약간의 사용방법이 바뀌어서 설치 방법을 정리합니다.

1. 준비
여기서는 KT UCloud에 8Core, 16GB 메모리 장비를 세대 생성했습니다.
server1, server2, server3

2. Zookeeper 설치
Zookeeper 의 설치는 기본이기 때문에 넘어가도록 하겠습니다. Zookeeper 설치 방법은 뭘 봐도 동일합니다.

3. kafka 다운로드
$> git clone https://github.com/apache/kafka.git

4. kafka 빌드
$> ./sbt update
$> ./sbt package
$> ./sbt assembly-package-dependency

5. config/consumer.properties 수정

zookeeper.connect=server1:2181,server2:2181,server3:2181

6. config/producer.properties 수정

metadata.broker.list=1:server1:9092,2:172.27.174.20:9092,3:172.27.92.32:9092

7. config/server.properties 수정

#서버에 맞춰서 unique 한 값을 준다.
broker.id=0

log.dir=/home/charsyam/kafka/log

8. kafka 서버 실행

bin/kafka-server-start.sh config/server.properties

9. topic 생성
topic을 안 만들어주면 제대로 동작을 하지 않는다.

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 2 --topic test

10. 샘플 실행
* consumer

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

* producer

bin/kafka-console-producer.sh --broker-list server1:9092,server2:9092,server3:9092 --topic test

이제 Kafka가 정상적으로 동작하는 것을 볼 수 있다. 이제는 이를 이용해서 어떤 작업을 할 수 있는지 알아보자.