반응형
1. 서론
이번 포스팅에서는 카프카 설치하는 방법을 튜토리얼처럼 정리하려고 합니다.
중간중간, 용어가 이해가지 않는 분들은 카프카란? 을 보고오시면 좋을거 같습니다.
2. 설치
설치는 최근 카프카를 주도적으로 이끌고 있는 confluent를 사용하여 진행하도록 하겠습니다.
confluent에서는 설치 방법을 다양하게 제공합니다. 그 중 저는 tar를 이용하여 진행하도록 하겠습니다.
그리고, ~/apps 경로에서 작업하겠습니다.
1) confluent-community tar 파일 다운로드
- 카프카, 주키퍼만을 설치할 예정으로 community를 다운받도록 하겠습니다.
- 현재 기준 최신인 5.4.0 버전을 다운받겠습니다.
curl -O http://packages.confluent.io/archive/5.4/confluent-community-5.4.0-2.12.tar.gz
2) 파일 해제
tar -zxvf confluent-community-5.4.0-2.12.tar.gz
반응형
3) zookeeper.properties 파일 수정
- 파일 경로 = ~/apps/confluent-5.4.0/etc/kafka/zookeeper.properties
- 아래는 confluent에서 가이드 되어있는 부분 중 dataDir, server.* 만 수정한 사진입니다.
- server.* 에는 앙상블을 이룰 서버의 ip 혹은 hostname을 적습니다.
- confluent에서는 server.<myid>=<hostname>:<leaderport>:<electionport> 형식으로 가이드 되어있습니다.
- dataDir에는 zookeeper의 데이터를 담는 경로를 지정합니다.
- 저의 경우에는 ~/zookeeper 경로를 만들어 지정하였습니다.
- dataDir 경로에는 server.* 에 지정한 번호값이 myid 파일로 존재해야 합니다.
- 아래 사진의 경우에는 앙상블 1번 서버의 myid 파일을 cat으로 확인한 사진입니다.
4) server.properties 파일 수정
- 파일 경로 = ~/apps/confluent-5.4.0/etc/kafka/server.properties
- broker.id, log.dirs, zookeeper.connect 3개의 값을 변경해줍니다.
- broker.id는 unique 해야합니다.
- log.dirs는 카프카관련 로그 경로를 지정해줍니다. (저의 경우 ~에 kafka 디렉토리를 만들어 지정하였습니다.)
- zookeeper.connect의 경우에는 앙상블 서버들을 ',' 구분자로 이어줍니다. (port는 zookeeper.properties파일에 정의한 clientPort를 지정합니다)
broker.id=1
log.dirs=~/kafka/kafka-logs
zookeeper.connect=zookeeper-server-1:2181,zookeeper-server-2:2181,zookeeper-server-3:2181
5) zookeeper 실행
주키퍼 실행은 아래와 같습니다.
- bin 디렉토리에 있는 zookeeper-server-start 명령어를 수행합니다.
- 명령어 수행 시 인자로는 위에서 정의한 zookeeper.properties 파일 경로를 제공합니다.
~/apps/confluent-5.4.0/bin/zookeeper-server-start ~/apps/confluent-5.4.0/etc/kafka/zookeeper.properties
6) broker 실행
브로커 실행은 아래와 같습니다.
- bin 디렉토리에 있는 kafka-server-start 명령어를 수행합니다.
- 명령어 수행 시 인자로는 위에서 정의한 server.properties 파일 경로를 제공합니다.
~/apps/confluent-5.4.0/bin/kafka-server-start ~/apps/confluent-5.4.0/etc/kafka/server.properties
3. 마무리
설치는 비교적 간단하게 이루어졌습니다.
다음 포스팅에서는 설치를 하였으니, 간단하게 CLI 기반의 사용예제를 진행하도록 하겠습니다.
* 참고
실행 시 에러 로그들이 보일텐데, 이것은 각 노드들이 아직 연결이 안되었기 때문에 나는 로그입니다.
각 노드들을 실행해도 난다면 설정 파일에 잘못된것이 있는지 다시 한번 확인하시기 바랍니다.
반응형
'MQ > Kafka' 카테고리의 다른 글
(6) spring kafka + schema registry + gradle plugin 적용 (4) | 2020.10.22 |
---|---|
(5) 카프카 사용 시 고려사항 (0) | 2020.02.26 |
(4) 카프카 매니저 & 스키마 레지스트리 (0) | 2020.02.26 |
(3) 카프카 사용 예제 (0) | 2020.02.25 |
(1) 카프카란? (2) | 2020.02.25 |