목차

  1. Kafka 서버를 구동하기 위한 EC2 Set Up
  2. EC2에 Zookeeper 설치 & 설정
  3. EC2에 Kafka 설치 & 설정

Kafka 서버를 구동하기 위한 EC2 Set Up

 

[AWS] Mac OS 터미널을 이용한 EC2 접속

목차 터미널 실행 .pem 파일 권한 설정 EC2 접속 터미널 실행 command + space bar 를 눌러 Spotlight 띄우기 터미널 입력 후 enter .pem 파일 권한 설정 .pem 파일 획득 및 EC2 발급은 이전 포스트 참조 [AWS]..

damdam-kim.tistory.com

 

[AWS] Kafka 사용을 위한 EC2 포트 설정

인스턴스 1개 선택 하단 설명 탭 - 보안 그룹 섹션의 "launch-wizard-1" (Default name) 클릭 하단의 인바운드 규칙 탭 - 인바운드 규칙 편집 버튼 클릭 규칙추가 버튼을 클릭하여 사진과 같이 port 추가 ( S

damdam-kim.tistory.com

위의 두 포스트를 확인하여 Kafka 실행을 위한 EC2 를 준비

 

 

 

kafka 서버 3개를 클러스터로 묶을 것이기 때문에 3대의 EC2 머신을 준비

 

 

 

각자의 /etc/hosts 파일을 편집해 이름 지정

cat /etc/hosts

파일 내용 보는 법 (cat 명령어)

 

 

 

vi /etc/hosts

파일 내용 편집하는 법 (vi 명령어)

 

 

 

만일 위 사진 처럼 읽기전용 으로 나올 경우

 

 

 

sudo vi /etc/hosts

입력 (sudo : 관리자 권한으로 실행)

 

 

 

"i" 를 눌러 INSERT 모드로 변경

해당 사진과 같이 각 IP에 이름 지정 (현재 test-brokerXX 라 명명)

(자신의 IP : 0.0.0.0)

 

 

 

esc 키

:wq! 입력 후 enter

(wq! 는 변경 내용 저장 후 종료)

(q! 는 변경 내용 저장하지 않고 종료)

 

 

 

EC2의 아이피 보는 법 (ex. test-broker01의 IP)

 

 

 

cat /etc/hosts

hosts 파일의 내용이 변경 된 것 확인 (cat 명령어: 해당 파일의 내용 확인)

 


EC2에 Zookeeper 설치 & 설정

 

Apache ZooKeeper

해당 사이트의 Project 탭의 Releases 를 클릭

 

 

 

Release 된 최신 zookeeper version 확인

(2020/08/27 일 기준 latest zookeeper version : 3.6.1)

 

 

 

wget https://downloads.apache.org/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz

zookeeper 버전만 최신으로 코드 변경 후 wget 명령어로 zookeeper 다운로드

 

 

 

apache-zookeeper-3/6/1-bin.tar.gz 파일 생긴 것 확인

 

 

 

tar xvf apache-zookeeper-3.6.1-bin.tar.gz

압축 풀기

 

 

 

apache-zookeeper-3.6.1-bin 디렉토리가 생긴 것 확인

 

 

 

cd apache-zookeeper-3.6.1-bin/conf

생성된 zookeeper 디렉토리 내의 conf 디렉토리로 이동

 

 

 

vi zoo.cfg

zoo.cfg 파일 생성

(vi 명령어는 기본적으로 파일의 내용을 편집하는 것)

(파일이 존재하지 않을 경우 파일을 생성하여 편집창을 띄운다)

 

 

 

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

1. "i" 를 눌러 INSERT 모드로 변경 후

2. 해당 내용 붙여넣기

3. esc 키

4. :wq! 입력 후 enter (변경 내용 저장 후 종료)

 


tickTime

- 기준 시간 (현재 2초)

 

dataDir

- zookeeper의 상태, 로그 등을 저장하는 디렉토리 위치 지정

 

clientPort

- client 의 연결을 감지하는 port

 

initLimit

- follower 가 leader와 처음 연결을 시도할 때 가지는 tick 횟수. 제한 횟수 넘으면 timeout

  (현재 40초로 설정) (tickTime * initLimit)

 

syncLimit

- follower 가 leader와 연결 된 후에 앙상블 안에서 leader와의 연결을 유지하기 위한 tick 횟수

  제한 횟수 넘으면 time out

  (현재 10초로 설정) (tickTime * syncLimit)

server.(zookeeper_server.pid의 내용)=(host name 이나 host ip):2888:3888

- 앙상블을 이루기 위한 서버의 정보

  2888은 동기화를 위한 포트, 3888은 클러스터 구성시 leader를 산출하기 위한 포트

  여기서 서버의 id 를 dataDir 에 설정해 줘야 한다.

  (서버id 설정 경로 : /var/lib/zookeeper 의 zookeeper_server.pid 파일)



EC2에 Kafka 설치 & 설정

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

해당 사이트의 우측 상단 DOWNLOAD KAFKA 클릭

 

 

 

Release 된 최신 Kafka version 확인

(2020/08/27 일 기준 latest Kafka version : 2.6.0)

 

 

 

wget https://archive.apache.org/dist/kafka/2.6.0/kafka_2.12-2.6.0.tgz

kafka 버전만 최신으로 코드 변경 후 wget 명령어로 kafka 다운로드

 

 

 

tar xvf kafka_2.12-2.6.0.tgz

압축 풀기

 

 

 

kafka_2.12-2.6.0 디렉토리가 생긴 것 확인

 

 

 

cd kafka_2.12-2.6.0/config

config 디렉토리로 이동

 

 

 

sudo vi server.properties

server.properties 파일을 편집

 

 

 

#test-broker01 일 경우

broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://test-broker01:9092
zookeeper.connect=test-broker01:2181,test-broker02:2181,test-broker03/test
#test-broker02 일 경우

broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://test-broker02:9092
zookeeper.connect=test-broker01:2181,test-broker02:2181,test-broker03/test
#test-broker03 일 경우

broker.id=2
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://test-broker03:9092
zookeeper.connect=test-broker01:2181,test-broker02:2181,test-broker03/test

사진과 같이 각각 독립된 broker.id 와 advertised.listeners 설정

 

 

 

Kafka 실행 & Error 조치는 아래 포스팅 참조

 

[Kafka] AWS의 EC2 머신에서 Kafka 실행 & Error 조치

목차 Zookeeper & Kafka 설치 Zookeeper 실행 & Error 조치 Kafka 실행 & Error 조치 Zookeeper & Kafka 설치 [Kafka] AWS의 EC2 머신에 Kafka 설치 & 실행 목차 Kafka 서버를 구동하기 위한 EC2 준비 EC2에 Zooke..

damdam-kim.tistory.com