[Kafka] Kafka zookeeper clustering

이정훈·2023년 3월 21일
0

kafka

목록 보기
5/5
post-thumbnail
  • 간단하게 하려고 kafka를 썻는데 이친구가 죽어버리면??????
  • kafka를 관리해주는 친구가 zookeeper 이친구도 중요 그래서 우린 이번에
    zookeeper3대와 kafka 3대를 클러스팅 해보려고 한다.
  • 관리해주는 친구를 먼저 설치하고자 한다.
  • zookeeper
    200.200.200.11
    200.200.200.12
    200.200.200.13
  • kafka
    200.200.200.16
    200.200.200.17
    200.200.200.18

zookeeper clustering

  • 방화벽은 해제해줘야한다.
systemctl stop firewalld
setenforce 0
  • 설치
yum -y install java-1.8.0-openjdk-devel.x86_64
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar zxvf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin /opt/zookeeper
  • 설정
mkdir -p /data/zookeeper # 디렉토리를 만들어줬다.
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg # 혹시모르니깐 설정파일 복사해서 사용하기!
vi /opt/zookeeper/conf/zoo.cfg
	dataDir=/tmp/zookeeper -> dataDir=/data/zookeeper
    server.[id]=200.200.200.11:2888:3888 # [id]는 아무거나 설정해줘도 되는데
	server.[id]=200.200.200.12:2888:3888 # 통일되고 알아볼 수 있는 것으로 해주는게 좋다!
	server.[id]=200.200.200.13:2888:3888 # 나는 1, 2, 3, 으로 설정했다.
vi /data/zookeeper/myid   # 파일을 하나 만들어 각 IP에 맞는 id를 적어준다.
	1 


  • 실행, 재시작
/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg
/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg
  • 확인
/opt/zookeeper/bin/zkServer.sh status

  • 출력 결과에 Mode: follower 또는 Mode: leader 확인

  • 3번 zookeeper를 끄게 되면 새로운 리더를 선출한다.

kafka clustering

  • 방화벽은 해제해줘야한다.
systemctl stop firewalld
setenforce 0
  • 설치
yum -y install java-1.8.0-openjdk-devel.x86_64
wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
tar -xzvf kafka_2.13-3.4.0.tgz
mv kafka_2.13-3.4.0 /opt/kafka
  • 설정
vi /opt/kafka/config/server.properties
	broker.id=[] # 1 또는 2 또는 3
    zookeeper.connect=[zookeeper IP]:2181 # 3대 모두 작성
    listeners=PLAINTEXT://:9092
	advertised.listeners=PLAINTEXT://[kafka IP]:9092 # 자기자신
# 위 설정 해야하는 파일만 확인해서 수정해도 되고
# 주석들을 모두 지워도 된다.
  • 실행
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
  • 확인 (zookeeper 에서)
/opt/zookeeper/bin/zkCli.sh 
	ls /

  • kafka를 설치하지 않았을 떄 zk node? 이것들이 실행되고 있지 않다.
/opt/zookeeper/bin/zkCli.sh 
    ls /brokers/ids

  • kafka를 설치하게 되면 zk node를 사용할 수 있게 된다.

  • 3번 kafka를 실행중지시면 zookeeper에서 꺼진것을 확인할 수 있다.

kafka에 장애가 발생

  • kafka가 설치된 putty 창하나를 더 띄어서 진행해 줘야한다.
  • 토픽 목록 확인
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server 서버들:9092
  • 토픽 생성
/opt/kafka/bin/kafka-topics.sh --create --bootstrap-server 서버들:9092 --replication-factor 3 --partitions 1 --topic 토픽주제이름
  • 토픽 상세 정보
/opt/kafka/bin/kafka-topics.sh --bootstrap-server 서버들:9092 --topic 토픽주제이름 --describe

  • 토픽 목록을 확인하면 현재 test로 만들어진 4개의 파일이 있는 것을 확인
  • test 9899 로 만드는데 복사본을 3개 만들 것이다. 라고 값을 주어 생성
  • 만들어지고 현재 test 9899의 리더는 3번이고 복사본(Replicas)은 3,1,2에 있다. 그리고 만약 3번이 죽으면 3,1,2에서 실행(Isr)할 수 있다. 라고 설정이 되어있다.
  • 그래서 3번을 껐다. 그러니깐 새로운 리더가 1번이 되고 복사본은 3,1,2에 있다.(이건 복사본이 켜져있을 때 만든것이기때문에 있는 것이다.), Isr 1,2 밖에 살아남지 못햇다.
profile
싱숭생숭늉

0개의 댓글