실시간 스트리밍에 대해서 알아보다가 메시지 브로커인 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 설정에 대한 포스트를 작성하도록 하겠다.
'BIG-DATA > KAFKA' 카테고리의 다른 글
[KAFKA] 무작정 시작하기 (5) - SASL 인증 설정 (0) | 2019.11.22 |
---|---|
[KAFKA] 무작정 시작하기 (4) - Topic & Producer & Consumer 실행 (0) | 2019.11.21 |
[KAFKA] 무작정 시작하기 (3) - Kafka 설정 (0) | 2019.11.20 |
[KAFKA] 무작정 시작하기 (2) - Zookeeper 설정 (0) | 2019.11.20 |
댓글