1. EC2 설정 및 실행
Kafka는 항상 켜져 있어야하므로, EC2에 설치
- AMI: Ubuntu 20.04
- 인스턴스: t2.micro (무조건 프리티어..)
Kafka는 9092(default) 포트를 사용하므로, inbound 규칙 추가
- port: 9092 / source: anywhere(0.0.0.0/0, ::/0)
2. Java 설치
Apache Kafka는 Java를 지원하는 모든 플랫폼에서 실행할 수 있다. Ubuntu에서 Kafka를 설정하려면 먼저 java 설치
sudo apt update
sudo apt-get install openjdk-8-jdk
현재 활성 Java 버전 확인
java --version
openjdk 11.0.10 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
3. Kafka 2.7.0 설치 및 실행
2.7.0 설치 (2021년 3월 16일 최신 버전)
wget http://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz
아카이브 파일 추출
tar xzf kafka_2.13-2.7.0.tgz
mv kafka_2.13-2.7.0 /usr/local/kafka # 폴더 이동
Kafka 실행 최소 Heap size 설정 제거 (t2.micro 메모리 크기 때문에 어쩔 수 없다...)
export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m" (설정)
echo $KAFKA_HEAP_OPTS (echo를 통해 확인 가능)
.bashrc 에 kafka 등록
# 맨 밑에 추가
export KAFKA_HOME=/usr/local/kafka
PATH=$PATH:$KAFKA_HOME/bin
config/server.properties 설정 변경
nano config/server.properties
broker.id = 0 (여러개의 클러스터를 구성한다면 겹치지 않게)
listeners=PLAINTEXT://:9092 (주석 제거)
advertised.listeners=PLAINTEXT://{EC2 public IP}:9092 (EC2 public ip 로 변경)
옵션 | 설명 |
---|---|
broker.id | 정수로 된 브로커 번호. 클러스터 내 고유번호로 지정 |
listeners | kafka 통신에 사용되는 host:port |
advertised.listeners | kafka client가 접속할 host:port |
log.dirs | 메시지를 저장할 디스크 디렉토리. 세그먼트가 저장됨 |
log.segment.bytes | 메시지가 저장되는 파일의 크기 단위 |
log.retention.ms | 메시지를 얼마나 보존할지 지정. 닫힌 세그먼트를 처리 |
zookeeper.connect | 브로커의 메타데이터를 저장하는 주키퍼의 위치 |
auto.create.topics.enable | 토픽을 자동으로 생성여부 |
num.partitions | 자동생성된 토픽의 default partition 개수 |
message.max.bytes | kafka borker에 쓰려는 메시지 최대 크기 |
Zookeeper / Kafka 백그라운드 실행
zookeeper-server-start.sh -daemon config/zookeeper.properties
kafka-server-start.sh -daemon config/server.properties
실행 확인
jps
6393 Kafka
4991 QuorumPeerMain # Zookeeper
Zookeeper / Kafka 종료
zookeeper-server-stop.sh config/zookeeper.properties
kafka-server-stop.sh config/server.properties
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Kafka' 카테고리의 다른 글
[Kafka] Kafka Stream 에제 3 - bank-balance-exactly-once (0) | 2021.11.23 |
---|---|
[Kafka] Kafka Stream 에제 1 - WordCount (0) | 2021.11.23 |
[Kafka] Ubuntu(우분투)에 Kafka 설치 및 실행 (EC2) (0) | 2021.11.23 |
댓글