Kafka 설치 및 실행

Andrew·2021년 12월 27일
0

kafka-programming

목록 보기
1/6
post-thumbnail

이하의 과정은 모두 MacOS 기반으로 설명됩니다. 가상머신에서의 커맨드는 차이가 없지만 로컬 컴퓨터 터미널에서의 커맨드는 차이가 있습니다.

1. AWS instance를 생성

Amazon Linux AMI를 선택 후, t2.micro instance 선택 (1년 간 free tier 적용)
zookeeper와 kafka를 구동하기 위해서는 최소 1GB의 메모리가 필요하기 때문에 메모리가 1GB가 넘는지 확인!

2. 생성한 instance에 접속

chmod 400 kafkaKey.pem (읽기 모드 권한 부여)
ssh -i kafkakey.pem ec2-user@{aws IP}

3. Instance에 java 설치

카프카 브로커를 실행하기 위해서는 JDK가 필요
운영체제마다 설치 커맨드가 다름 주의!

Linux

sudo yum install -y java-1.8.0-openjdk-devel.x86_64
java -version

Ubuntu

sudo apt-get install openjdk-8-jdk
java -version

4. zookeeper, kafka 브로커 실행

(kafka_2.12-2.5.0 버전으로 실습 진행함)

wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz
tar xvf kafka_2.12-2.5.0.tgz
cd kafka_2.12-2.5.0

5. kafka 브로커 힙 메모리 설정

2가지 방법

1) 환경변수 export 이용하여 선언(터미널 세션 종료시 초기화)

export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"
echo $KAFKA_HEAP_OPTS

2) ~/.bashrc 파일에 입력(터미널 세션이 종료되어도 초기화되지 않음)

vim ~/.bashrc

a 눌러 insert mode 진입
마지막 부분에
export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m" 추가
esc :wq
source ~/.bashrc
echo $KAFKA_HEAPS_OPTS

6. kafka 브로커 실행 옵션 설정

vim config/server.properties
advertised.listeners=PLAINTEXT://{aws IP}:9092으로 수정
zookeeper.connect=localhost:2181

7. zookeeper 실행

kafka_2.12-2.5.0 디렉토리 위치에서
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
-daemon 옵션 추가 시 백그라운드로 주키퍼 실행 가능
jps 입력

QuorumPeerMain
Jps
출력되면 주키퍼 정상 실행 중

+) 추가
brew install zookeeper로 설치했다면
brew services start zookeeper로 실행
brew services stop zookeeper로 중지

8. kafka 브로커 실행 및 로그 확인

kafka_2.12-2.5.0 디렉토리 위치에서
bin/kafka-server-start.sh config/server.properties
bin/kafka-server-start.sh -daemon config/server.properties
-daemon 옵션 추가 시 백그라운드에서 브로커 실행

jps 입력

QuorumPeerMain
kafka
Jps
출력되면 카프카 브로커까지 정상 실행 중

tail -f logs/server.log 커맨드를 통해 카프카 브로커의 로그를 실시간으로 확인할 수 있다(ctrl-C를 통해 로그 기록 확인을 빠져나온다).

+) 추가
brew install kafka로 설치했다면
brew services start kafka로 실행
brew services stop kafka로 중지

9. 로컬 컴퓨터에서 카프카와 통신 확인

로컬 컴퓨터에서 kafka_2.12-2.5.0 설치 후 aws instance의 kafka와 통신 시도

로컬
curl https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz
tar -xvf kafka.tgz
cd kafka_2.12-2.5.0
ls
ls bin
kafka-broker-api-versions.sh 파일이 존재함을 확인

bin/kafka-broker-api-versions.sh --bootstrap-server {aws IP}:9092
{aws Ip}:9092 (id: 0 rack: null) -> ( ....과 비슷하게 출력되면 통신 성공!

10. 테스트 편의를 위한 hosts 설정

꼭 필요한 부분은 아니지만 t2.micro 인스턴스의 경우 1년 간 free tier를 적용받기 때문에 매번 번거롭게 인스턴스 종료 후 재시작할 필요가 없다. 따라서 현재 인스턴스의 IP를 my-kafka라는 이름으로 지정해 줄 수 있다.

cd ~
vim /etc/hosts
a insert mode 진입
{aws IP} my-kafka
esc :wq

profile
조금씩 나아지는 중입니다!

0개의 댓글