메뉴 닫기

Ubuntu 24.04 환경에서 Apache Kafka 3.7.0 단일 노드 설치

Ubuntu 24.04 환경에서 Apache Kafka 3.7.0 단일 노드 설치

Kafka] Apache Kafka란

[개요]

종류 : 개념정의 + 구축 예제

난이도 : ⭐

내용요약 : Apache Kafka 3.7.0을 Ubuntu 24.04 단일 노드에 설치하고 기본 테스트

테스트환경 : Ubuntu 24.04 (64bit)

관련직무 : 시스템 엔지니어, 클라우드 엔지니어, 데이터 엔지니어


1. Kafka란?

[ Kafka 의 주요 기능]

  • 분산 스트리밍 플랫폼 : 대규모 데이터의 실시간 수집 및 전송을 지원합니다.

  • 내구성 높은 메시지 저장 : 데이터 손실 없이 안정적으로 메시지를 저장하고 전송할 수 있습니다.

  • 고성능 처리 : 초당 수십만 메시지를 처리할 수 있는 높은 처리량을 자랑합니다.

  • 확장성 : 단일 서버부터 수천 개의 노드로 클러스터를 쉽게 확장할 수 있습니다.

  • 다양한 언어 지원 : Java, Python, Go 등 다양한 클라이언트 라이브러리를 제공합니다.

2. 설치

2.1 시스템 업데이트

sudo apt update
sudo apt upgrade -y

2.2 Java 17 설치 (Kafka 3.7.0 요구사항)

apt install openjdk-17-jdk

java –version

3. Kafka 다운로드 및 설치

3.1 Kafka 다운로드

cd /opt

wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.12-3.9.0.tgz

3.2 Kafka 압축해제

tar -zxvf kafka_2.12-3.9.0.tgz
mv kafka_2.12-3.9.0 kafka

3.3 권한 설정

useradd -m kafka

chown -R kafka:kafka /opt/kafka

4. Kafka 실행

Kafka는 기본적으로 Zookeeper를 먼저 실행하고, 그 다음 Kafka 서버를 실행합니다.

4.1 Zookeeper 서버 실행 [1번 terminal]

cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties

4.2 Kafka 서버 실행 [2번 terminal]

cd /opt/kafka
bin/kafka-server-start.sh config/server.properties

5. 기본 테스트

5.1 토픽 생성 [3번 terminal]

cd /opt/kafka

bin/kafka-topics.sh –create –topic test –bootstrap-server localhost:9092 –partitions 1 –replication-factor 1

5.2 토픽 목록 확인 [3번 terminal]

bin/kafka-topics.sh –list –bootstrap-server localhost:9092

5.3 메시지 전송 (Producer) [3번 terminal]

bin/kafka-console-producer.sh –topic test –bootstrap-server localhost:9092

5.4 메시지 수신 (Consumer) [4번 terminal]

cd /opt/kafka

bin/kafka-console-consumer.sh –topic test –from-beginning –bootstrap-server localhost:9092

6. 주요 참고사항

  • Kafka 3.7.0은 기본적으로 Zookeeper 기반으로 설치되지만, KRaft 모드를 지원합니다.

  • 운영환경에서는 다중 노드 구성Persistence 설정이 필요합니다.

  • 포트 확인 :

    • Zookeeper 기본 포트 : 2181

    • Kafka 기본 포트 : 9092

  • 방화벽(UFW 등) 설정에 주의해야 합니다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x