본문 바로가기
BIG-DATA/KAFKA

[KAFKA] 무작정 시작하기 (1) - 설치 & 실행

by 허도치 2019. 11. 19.

  실시간 스트리밍에 대해서 알아보다가 메시지 브로커인 Kafka에 대해서 알게되었다. Kakao에서도 사용사례가 있다는 것을 보고 더욱 관심이 생겨서 알아보고 직접 사용해보게 되었다. 이 포스트에서는 Kafka를 Windows기반으로 셋팅하는 방법을 다루어 보도록 하겠다.

 

 

1. Kafka란?

   1-1. 메시지 브로커, 메시지 큐라고도 함.

         - Producer가 메시지를 Broker에 적재해두면 Consumer들은 Broker로부터 메시지를 소비함.

 

   1-2. 이기종 간의 호환성이 뛰어남.

         - 하둡, 오라클, Elasticsearch 등 다양한 플랫폼과 호환됨.

 

   1-3. Broker는 Leader와 Follower로 역할이 나뉘어짐.

         - Leader가 작업을 할 수 없는 상태가 되면 Follower 중 하나가 Leader가 됨.

         - 이러한 구조의 장점으로 데이터 전송에 중단점이 없음.

         - 단, Broker가 많아질수록 비용이 커짐.

 

   1-4. 분산 처리를 위해 분산 코디네이터인 Zookeeper와 함께 사용됨.

 

 

2. 다운로드 & 압축 풀기

   2-1. JAVA : jdk_11.0.5 - download

   2-2. Kafka : 2.12-2.1.0버전 - download

         - 해당 버전은 binary 버전인데 커스터마이징해서 사용하기에 좋음.

   2-3. windows의 경우 경로명이 길어지면 실행이 안되므로, C:\work 폴더를 생성하고 여기에 압축푸는 것을 추천함.

 

 

3. 실행 테스트

    3-1.  zookeeper-server 실행

          - bin/windows/zookeeper-server-start.bat를 실행해도 실행되지 않음.

          - config/zookeeper.properties를 실행을 할 때 인자값으로 보내줘야함.

          - 아래와 같이 실행하면 실행되는 것을 확인할 수 있음.

1
$ bin/windows/zookeeper-server-start.bat config/zookeeper.properties
cs

 

    3-2. kafka-server 실행

          - bin/windows/kafka-server-start.bat를 실행해도 실행되지 않음.

          - config/server.properties를 실행을 할 때 인자값으로 보내줘야함.

          - 아래와 같이 실행하면 실행되는 것을 확인할 수 있음.

1
$ bin/windows/kafka-server-start.bat config/server.properties
cs

 

    3-3. batch script의 필요성

          - zookeeper와 kafka server를 실행하기 위해서는 인자값을 보내주어야 함.

          - 매번 실행할 때마다 인자값을 보내주는 일은 귀찮고 실수할 수도 있으므로, server를 실행할 수 있는 batch script를 작성하여 사용하는 것을 권장함.

          - 이렇게 스크립트를 작성하면 추가 옵션들을 작성하기 편함.

          - 종료는 기존 배치를 사용하거나 프로세스를 kill 하는 스크립트를 작성해도 좋음.

 

 

4. batch script 작성

   4-1. zookeeper_server_start.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
rem zookeeper_server_start.bat
@echo off
 
rem 현재 디렉토리 설정
pushd %~dp0
set KAFKA_HOME=%cd%
popd
 
rem jdk.8.0_131 이상 버전에서 지원
set JAVA_HOME=%KAFKA_HOME%\java\jdk-11.0.5
set KAFKA_OPTS=
set KAFKA_OPTS=%KAFKA_OPTS% -Dkafka.logs.dir=%KAFKA_HOME%\logs
 
%KAFKA_HOME%\bin\windows\zookeeper-server-start.bat %KAFKA_HOME%\config\zookeeper.properties
cs

 

   4-2. kafka_server_start.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
rem kafka_server_start.bat
@echo off
 
REM 현재 디렉토리 설정
pushd %~dp0
set KAFKA_HOME=%cd%
popd
 
REM jdk.8.0_131 이상 버전에서 지원
set JAVA_HOME=%KAFKA_HOME%\java\jdk-11.0.5
set KAFKA_OPTS=
set KAFKA_OPTS=%KAFKA_OPTS% -Dkafka.logs.dir=%KAFKA_HOME%\logs
 
%KAFKA_HOME%\bin\windows\kafka-server-start.bat %KAFKA_HOME%\config\server.properties
 
cs

 

 

5. 실행 확인

   5-1. zookeeper server 실행

         - 실행이 완료되면 기본 설정에 의해 2181 포트로 binding됨.

 

   5-2. kafka-server 실행

         - 실행하면 위에서 실행한 zookeeper에 접속함.

 

         - Kafka 실행 확인.

 

 

  이상으로 Kafka에 대해서 간단하게 알아보고 설치와 간단하게 실행까지 해보았다. 다음 포스트에서는 zookeeper 설정에 대한 포스트를 작성하도록 하겠다.

댓글