아파치 카프카를 우분투에 설치하는 방법을 알아보겠습니다. 설치에 사용된 우분투 버전은 22.04 입니다. 설치하기 전에 아래의 명령어를 통해 먼저 자바를 설치해 줍니다.
sudo apt update
sudo apt upgrade
sudo apt install default-jdk
1단계 : 카프카 최신버전 다운로드
https://dlcdn.apache.org/kafka 에서 최신버전 확인
카프카는 별도로 라이브러리처럼 설치하는 게 아니라 그냥 다운로드해서 어느 폴더에 집어넣으면 끝입니다. 일단 아래 코드와 같이 다운로드 해줄게요.
wget https://dlcdn.apache.org/kafka/3.4.0/kafka_2.12-3.4.0.tgz
그 다음에 압축을 풀고, 압축을 푼 폴더를 그냥 home 폴더에 두기는 좀 그러니까 적절한 폴더로 이동해 주면 됩니다.
tar xzf kafka_2.12-3.4.0.tgz
2단계 : 카프카 서비스 생성
kafka_2.12-3.4.0 폴더 경로에서 실행
config/server.properties 파일을 열어 Kafka 설정 을 변경해 주세요. (서버 정보 변경 필요시)
클라우드나 별도 서버를 통해 띄울 경우 listeners advertised.listeners 옵션의 주석을 해제하고 서버정보를 기재해주시면 됩니다. 저는 로컬에 서버를 띄울 것이므로 수정하지 않겠습니다. ( Default : localhost:9092)
$ vi config/server.properties
############################# Server Basics #############################
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0
############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://:9092
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#advertised.listeners=PLAINTEXT://your.host.name:9092
주석을 해제 합니다. 외부 호출시 여기 주석을 해제해 줍니다. 특정포트 변경시 여기서 변경합니다.
listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://:9092
3단계 : 카프카 서비스 실행
카프카 Broker를 띄우기 전에 먼저 ZooKeeper를 실행해 줍니다.
ZooKeeper란 카프카 클러스트의 메타데이터(브로커, 컨트롤러 ID 등)를 저장하는 서버로 현재는 Broker를 실행하려면 필수로 떠있어야 하는 서비스이나 향후 카프카 클러스트에 통합시킬 예정이라고 하니 참고해 주세요.
1)주키퍼 실행
주키퍼 실행 ( 포그라운드 실행, 확인 후 백그라운드 실행 )
(기본 - 포그라운드 실행)
bin/zookeeper-server-start.sh config/zookeeper.properties
or
(백그라운드 실행)
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
2)쥬키퍼가 정상적으로 떴으면 Kafka 서버를 실행해 줍니다.
카프카 실행 ( 포그라운드 실행, 확인 후 백그라운드 실행 )
(기본 - 포그라운드 실행)
bin/kafka-server-start.sh config/server.properties
or
(백그라운드 실행)
bin/kafka-server-start.sh -daemon config/server.properties
3)이후jps명령어를 통해 쥬키퍼, 카프카가 정상적으로 실행 됐는지 확인해보시면 됩니다.
$ jps
5105 QuorumPeerMain
6242 Jps
6787 jar
5619 Kafka
4023 admin_api.jar
참고 - Kafka CLI(Command Line Interface - ShellScript)
설치한 카프카의 bin폴더에 카프카를 편리하게 사용할 수 있도록 다양한 쉘스크립트를 제공하고 있습니다. 이를 통해 터미널의 CLI 환경에서도 카프카에 이벤트를 쓰고 읽고 쓸 수가 있으며 자주 사용되는 쉘은 아래와 같습니다.
- kafka-topics.sh : 토픽 생성, 조회, 수정 등 역할
- kafka-console-consumer.sh토픽의 레코드 즉시 조회
- kafka-console-producer.sh토픽의 레코드를 전달(String)
- kafka-consumer-groups.sh : 컨슈머그룹 조회, 컨슈머 오프셋 확인, 수정
여기까지 하면 카프카 서버가 실행되고, 토픽을 발행하고 데이터를 보내고 받을 수 있게 됩니다. 이제 간단한 예제로 토픽을 발행하고, 메세지를 보내고 받아 볼게요.
'서버작업 > Kafka' 카테고리의 다른 글
(Ubuntu)kafka 토픽 생성 ,삭제,쓰기 및 조회 (0) | 2023.04.04 |
---|