본 포스팅은 인프런 데브원영님의 [아파치 카프카 애플리케이션 프로그래밍]의 강의를 수강 후 정리하는 글입니다.
1. 카프카 CLI 툴 소개
1-1. 카프카 커맨드 라인 툴
커맨드 라인 툴을 이용해서 카프카 브로커 운영에 다양한 명령 가능
토픽이나 파티션 개수 변경 등등의 기능들 가능
토픽과 관련된 명령에 필수 옵션과 선택 옵션이 있는데, 선택 옵션은 디폴트 값이 있어서 확인해야 좋음
2. 로컬에서 카프카 브로커 실행
2-1. kafka_2.12-3.5.1.tgz 바이너리 파일 다운로드
카프카 바이너리 파일 다운로드(본인은 3.5.1버전 다운로드 하였음)
https://kafka.apache.org/downloads
2-2. 카프카 바이너리 파일 압축 풀기
tar -zxvf kafka_2.12-3.5.1.tgz
2-3. kafka 디렉토리에 구조 보기
cd kafka_2.12-3.5.1
tree -L 1
.
├── LICENSE
├── NOTICE
├── bin # 쉘 스크립트 있는 공간
├── config # 여러 설정 파일들 있는 공간
├── data
├── libs # 브로커 실행시킬 때 참조하는 라이브러리들 있는 공간
├── licenses
├── logs
└── site-docs
2-4. server.properties 수정
mkdir data #추후 편의상 로그 저장할 공간 만들기
vi config/server.properties
- server.properties
############################# Server Basics #############################
# ... (중간 생략)
# 실행시킬 브로커의 id가 0인 걸 알 수 있음
broker.id=0
############################# Socket Server Settings #############################
# ... (중간 생략)
# 아래 주석 해제하고 아래와 같이 변경
# 카프카 브로커가 통신을 통해서 우리가 받을 ip를 뜻함
listeners=PLAINTEXT://localhost:9092
# ... (중간 생략)
# 아래 주석 해제하고 아래와 같이 변경
# 카프카 클라이언트들이 받을 브로커의 ip 정보
advertised.listeners=PLAINTEXT://localhost:9092
# ... (중간 생략)
############################# Log Basics #############################
# 편의상 카프카 디렉토리 있는 디렉토리에(본인은 lecture) 만든 data 디렉토리에 로그 저장
# 프로듀서가 브로커로 보낸 데이터가 저장되는 파일 시스템 위치
log.dirs=/home/joontube/lecture/kafka_2.12-3.5.1/data
# 토픽을 만들 때 만들어질 파티션의 기본 개수
num.partitions=1
# ... (중간 생략)
# 로그 세그멘테이션 및 보유 설정
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=30000
# ... (중간 생략)
2-5. 주키퍼 실행
선행 조건: java가 깔려있어야함(oracle 또는 homebrew로 설치)
주키퍼 설정 확인
cat config/zookeeper.properties
-zookeeper.properties(기본 값으로 설정되어 있어 수정 불필요)
# the directory where the snapshot is stored.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
# Disable the adminserver by default to avoid port conflicts.
# Set the port to something non-conflicting if choosing to enable this
admin.enableServer=false
# admin.serverPort=8080
주키퍼 실행
bin/zookeeper-server-start.sh config/zookeeper.properties
2-6. 카프카 브로커 실행
터미널을 새로 열기
bin/kafka-server-start.sh config/server.properties
2-7. 카프카 정상 실행 여부 확인
bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092
또는, 토픽 목록 조회하는 명령어를 통해 브로커와 통신이 가능함을 확인 가능
bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
2-8. 테스트 편의를 위한 hosts 설정
sudo vi /etc/hosts
- hosts
127.0.0.1 my-kafka #추가
'Kafka' 카테고리의 다른 글
[Apache Kafka] 4. 아파치 카프카 CLI 활용(3) - 컨슈머, 컨슈머 그룹, 성능테스트, 로그덤프 (1) | 2024.10.11 |
---|---|
[Apache Kafka] 4. 아파치 카프카 CLI 활용(2) - 토픽, 프로듀서 (2) | 2024.10.10 |
[Apache Kafka] 3. 카프카 클러스터 운영 (0) | 2024.10.09 |
[Apache Kafka] 2. 카프카 기본 개념 설명(2) (3) | 2024.10.08 |
[Apache Kafka] 2. 카프카 기본 개념 설명(1) (1) | 2024.10.01 |