02 kafka setup
02 kafka setup
1. kafka setup
1. JDK
1
2
3
# Kafka를 실행시키려면 JDK 17 이상이 설치되어 있어야 함.
$ sudo apt update
$ sudo apt install openjdk-17-jdk
2. 카프카 설치
1
2
3
$ wget https://dlcdn.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz
$ tar -xzf kafka_2.13-4.0.0.tgz # 압축 풀기
$ cd kafka_2.13-4.0.0
2. 초기 셋팅
1. 메모리 관련
1
2
3
# 사용환경이 메모리가 적을 경우 필요
# AWS환경에서 무료버전 사용할 경우에 메모리가 작아서 사용 필수!
$ export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"
2. swap기능
1
2
3
4
5
6
# swap은 일부 디스크 공간을 메모리로 활용하는 기법
# swap을 활용하면 EC2 인스턴스의 부족한 메모리 사양을 어느 정도 보완할 수 있음
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16 # 2GB짜리의 파일 생성
$ sudo chmod 600 /swapfile # 파일에 권한 부여
$ sudo mkswap /swapfile # 2GB 짜리 파일을 swap 공간의 형태로 전환
$ sudo swapon /swapfile # swap 활성화
3. 시스템 설정 변경
1
2
3
4
5
# 시스템 부팅 시마다 자동으로 활성화 되도록 파일시스템 수정
$ sudo vi /etc/fstab
# 아래 내용을 추가하고 저장하기
/swapfile swap swap defaults 0 0
4. 접근 url 설정
1
2
3
# 프로퍼티스 설정필요
# 카프카 디렉토리/cofnig 안에서 파일 있음
vi config/server.properties
1
2
3
# 외부에서 접근할 때 사용하는 주소
# advertised.listeners 가운데쯤에 이거 존재함
advertised.listeners=PLAINTEXT://{EC2 Public IP}:9092,CONTROLLER://{EC2 Public IP}:9093
3. 실행
1. 최초 실행시
1
2
3
4
# 초기 로그 폴더 셋팅 (카프카 첫 실행 때만 이 명령어를 입력하면 됨)
# 공식문서에서 제공되어 있음.
$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
$ bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties
2. 추후 일반 실행
1
2
3
4
5
6
7
# 카프카 디렉토리 안에서 실행.
# 프로퍼티스 파일을 파라미터로 카프카를 실행함.
$ bin/kafka-server-start.sh config/server.properties # 포그라운드에서 실행
$ bin/kafka-server-start.sh -daemon config/server.properties # 백그라운드에서 실행
# 로그에 실행완료 확인됨(포그라운드에서만 확인 가능)
# INFO [KafkaRaftServer nodeId=1] Kafka Server started (kafka.server.KafkaRaftServer)
3. 종료
1
2
3
4
5
6
7
8
# 카프카 종료(포그라운드)
$ 리눅스 명령어 -> 컨트롤C 실행
# 카프카 종료하기(백그라운드)
$ bin/kafka-server-stop.sh
# 잘 종료됐나 확인
$ sudo lsof -i:9092
4. 백그라운드 로그
1
tail -f logs/kafkaServer.out
This post is licensed under CC BY 4.0 by the author.