Posts [개발자 블로그] Kafka-AWS에카프카클러스터실습(설치 및 실행)
Post
Cancel

[개발자 블로그] Kafka-AWS에카프카클러스터실습(설치 및 실행)

Kafka-AWS에카프카클러스터실습(설치 및 실행)

  • aws의 ec2 서버 3대를 발급받아서 카프카를 설치 후 console producer와 console consumer로 연동해보는 실습
  • 아파치 카프카를 실행하기 위해선 2가지의 애플리케이션의 요구
    • zookeeper: 카프카 관련 정보를 저장하는 역할
    • kafka

      설치

      1) ec2 t2.micro 인스턴스 3대 발급 받기
      2) 발급받은 인스턴스 3대 모두 wget명령어로 zookeeper다운 받고 압축 풀기

1
2
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
tar xvf apache-zookeeper-3.6.2-bin.tar.gz

스크린샷 2021-01-02 오후 4 29 12
스크린샷 2021-01-02 오후 4 31 18

3) zookeeper 앙상블을 구축하기 위해서 각 서버마다 주키퍼를 설정

1
2
3
4
5
6
7
8
9
10
vi conf/zoo.cfg

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=20
syncLimit=5
server.1=test-broker01:2888:3888
server.2=test-broker03:2888:3888
server.3=test-broker02:2888:3888

스크린샷 2021-01-02 오후 4 38 28
스크린샷 2021-01-02 오후 4 40 42

4) 각 서버별로 ip가 아닌 hostname으로 통신하기 위해 /etc/hosts 파일 수정

1
2
3
4
5
6
7
8
sudo vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost6 localhost6.localdomain6

0.0.0.0 test-broker03
54.180.24.106 test-broker01
13.125.221.139 test-broker02

스크린샷 2021-01-02 오후 4 52 44

5) 주키퍼를 서로 연동하기 위해서는 방화벽 설정이 필요 (aws의 security group의 2181 2888 3888 세 개의 포트를 open, 카프카 통신을 위해 9092포트도 open)
스크린샷 2021-01-02 오후 4 57 22

6) open jdk 설치 후 JAVA_HOME설정

1
2
3
4
5
sudo yum install java-1.8.0-openjdk-devel.x86_64

vi ~/.bash_profile
JAVA_HOME=/usr/lib/jvm/java-1.8.0
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin

7) /var/lib/zookeeper 밑에 다음과 같이 myid지정

1
2
sudo vi /var/lib/zookeeper/myid
1~255사이의 id지정

8) zookeeper 시작

1
./bin/zkServer.sh start

9) Kafka 설치

1
2
wget https://archive.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz
tar xvf kafka_2.11-2.1.0.tgz

10) server.properties의 설정

  • 1) broker.id를 서버 별로 각각 다른 숫자로 설정
  • 스크린샷 2021-01-02 오후 5 52 25
  • 2) listener와 advertise listener도 설정
  • 3) 실행했던 zookeeper의 hostname과 port도 설정
  • 스크린샷 2021-01-02 오후 5 57 28

11) Kafka실행

1
./kafka-server-start.sh ../config/server.properties

12) Topic생성

1
./bin/kafka-topics --create --zookeeper test-broker01:2181,test-broker02:2181,test-broker03:2181/test --replication-factor 1 --partitions 1 --topic test

13) producer 실행

1
./kafka-console-producer --broker-list 54.180.24.106:9092,13.125.221.139:9092,3.34.44.11:9092 --topic test

14) consumer 실행

1
./kafka-console-consumer --bootstrap-server test-broker01:9092 --topic test --from-beginning

출처 및 참고

This post is licensed under CC BY 4.0 by the author.