본문 바로가기
SingleStoreDB/엔지니어링

카프카(kafka) 싱글 노드 클러스터 구축

by 에이플랫폼 [Team SingleStore Korea] 2025. 2. 3.

 

 

안녕하세요 에이플랫폼 입니다.

오늘은 후술할 Kafka 관련 테스트를 하기 위해 카프카 싱글 노드 클러스터를 구축하는 방법을 소개해 드리겠습니다. 

📌테스트 환경

  • Virtual Machine을 사용했습니다.
  • OS: Rocky 9.5
  • 4 CPU / 8 GB RAM
  • 간단하게 설치 후 SingleStore Kafka Pipeline 실습을 위한 목적입니다.

1. 사전 작업

1.1. 필수 종속 패키지 설치

JAVA RUNTIIME

⚠️ Java 8 이상 버전을 설치해야 합니다.

- 확인

# 현재 java 설치 전 
[jwy@kafka ~]$ java -version -bash: java: command not found

- 설치

# java 검색 
[jwy@kafka ~]$ dnf search java | grep headless 
Rocky Linux 9 - BaseOS 2.6 MB/s | 3.4 MB 00:01 
Rocky Linux 9 - AppStream 5.4 MB/s | 9.1 MB 00:01 
Rocky Linux 9 - Extras 20 kB/s | 16 kB 00:00 
java-1.8.0-openjdk-headless.x86_64 : OpenJDK 8 Headless Runtime Environment 
java-11-openjdk-headless.x86_64 : OpenJDK 11 Headless Runtime Environment 
java-17-openjdk-headless.x86_64 : OpenJDK 17 Headless Runtime Environment 
java-21-openjdk-headless.x86_64 : OpenJDK 21 Headless Runtime Environment 

# 최신버전으로 설치 해줬습니다. ㅎㅎ 
[jwy@kafka ~]$ sudo dnf install java-21-openjdk-headless.x86_64 -y

1.2. 방화벽 오픈

다음 포트에 대해 OS의 S/W 방화벽(firewalld)을 오픈합니다.

만약, AWS 와 같은 클라우드 인스턴스일 경우, 자체 네트웍(VCN)망의 방화벽 오픈도 필요합니다.

  • 2181 : kafka-zookeeper
  • 2888 : kafka leader
  • 3888 : kafka election
  • 9092 : kafka server(broker)
[jwy@kafka ~]$ sudo firewall-cmd --permanent --zone=public --add-port=2181/tcp --add-port=2888/tcp --add-port=3888/tcp --add-port=9092/tcp
success

## 방화벽 재시작 
[jwy@kafka ~]$ sudo firewall-cmd --reload

2. 카프카 클러스터 구성

2.1. 카프카 패키지 다운로드

1) 패키지 다운로드

다운로드 사이트[https://kafka.apache.org/downloads] 에서 최신 패키지를 다운로드 합니다.

도커 이미지도 가능하긴 하지만 여기서는 VM 실습 이므로 바이너리 다운로드로 설명 하겠습니다.

우클릭

링크 주소 복사

[jwy@kafka ~]$ wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.tgz

2) 압축해제

[jwy@kafka ~]$ tar xvf kafka_2.13-3.9.0.tgz

2.2 환경 변수 등록

  • 쉘 환경 설정 
  • HOME = /home/{user}/ 일때
$ vi ~/.bash_profile
# 설정 끝에 추가
export PATH=$HOME/kafka_2.13-3.9.0/bin:$PATH

$ source ~/.bash_profile

2.3 싱글 노드 구성

간단히 실습을 진행 하기 위해 nohup으로 실행 후 실습을 진행 했습니다.

주키퍼 및 카프카 기동

# 주키퍼 기동
[jwy@kafka ~]$ nohup zookeeper-server-start.sh ~/kafka_2.13-3.9.0/config/zookeeper.properties &
[1] 29460
[jwy@kafka ~]$ nohup: ignoring input and appending output to 'nohup.out'

# 카프카 기동
[jwy@kafka ~]$ nohup kafka-server-start.sh ~/kafka_2.13-3.9.0/config/server.properties &
[2] 29882
[jwy@kafka ~]$ nohup: ignoring input and appending output to 'nohup.out'


3. 완성

👍여기 까지 잘 따라 오셨다면 카프카 실습을 위한 준비는 끝났습니다.👍

[jwy@kafka ~]$ jobs
[1]-  Running                 nohup zookeeper-server-start.sh ~/kafka_2.13-3.9.0/config/zookeeper.properties &
[2]+  Running                 nohup kafka-server-start.sh ~/kafka_2.13-3.9.0/config/server.properties &

위 와같이 jobs에 두개가 실행 되고 있다면 준비는 끝났습니다.

오류 사항이나 궁금하신 점을 댓글 달아 주시면 답변해드리겠습니다.