반응형
/*
-- Title : [Kfk3.2] Kafka 설치-1(환경 설정 및 Zookeeper 설치)
-- Tag : apache kafka 아파치 카프카
*/
■ 클러스터 환경
- 서버 : 가상서버 3대에 설치
■ 사용자 생성 (각 Instance 적용)
## 사용자 추가
[root@localhost ~]# useradd kafka
[root@localhost ~]# passwd kafka
kafka 사용자의 비밀 번호 변경 중
새 암호:
새 암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@localhost ~]# pwconv
[root@localhost ~]#
■ kafka 계정에 sudo 권한 부여 (각 Instance 적용)
- /etc/sudoers 편집
- "kafka ALL=(ALL) ALL" 을 아래 위치에 추가
## kafka 사용자에 sudo 권한 부여
[root@localhost ~]# vi /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
kafka ALL=(ALL) ALL ## 여기 행 추가
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
:wq!
[root@localhost ~]#
■ JAVA 확인 및 설치 (각 Instance 적용)
ㅁ JAVA 버전 확인
[root@localhost ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
[root@localhost ~]#
ㅁ JAVA 설치 (버전이 설치되어 있지 않을 때)
## JAVA 패키지 설치
[root@localhost ~]# yum -y install java-1.8.0-openjdk-devel.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...
Dependency Updated:
java-1.8.0-openjdk.x86_64 1:1.8.0.342.b07-1.el7_9
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.342.b07-1.el7_9
tzdata-java.noarch 0:2022c-1.el7
Complete!
[root@localhost ~]#
## JAVA 버전 확인
[root@localhost ~]# java -version
openjdk version "1.8.0_342"
OpenJDK Runtime Environment (build 1.8.0_342-b07)
OpenJDK 64-Bit Server VM (build 25.342-b07, mixed mode)
[root@localhost ~]#
■ 호스트네임 변경 (각 Instance 적용)
- 각 Instance에 호스트네임 변경
- ka01(192.168.137.111), ka02(192.168.137.112), ka03(192.168.137.113) 지정
## 호스트명 변경
[root@localhost ~]# hostnamectl set-hostname ka01
[root@localhost ~]# cat /etc/hostname
ka01
[root@localhost ~]#
## hosts 파일 변경
[root@localhost ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.111 ka01
192.168.137.112 ka02
192.168.137.113 ka03
:wq!
[root@localhost ~]#
## hosts 파일 변경 확인
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.111 ka01
192.168.137.112 ka02
192.168.137.113 ka03
[root@localhost ~]#
■ Zookeeper 및 Kafka 서버간 방화벽 설정 (각 Instance 적용)
## 2181 : Zookeeper Client가 Zookeeper에 연결할 때 사용
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=2181/tcp
success
## 2888 : Zookeeper leader노드가 follower 노드를 위해 열어두는 포트(동기화용)
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=2888/tcp
success
## 3888 : Zookeeper 리더 선출을 위한 election 용 포트
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=3888/tcp
success
## 9092 : Kafka 기본 포트
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=9092/tcp
success
## 방화벽 재시작
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#
■ Zookeeper 설치 파일 다운로드 및 압축 해제 (각 Instance 적용)
## Zookeeper 설치파일 다운로드
[root@localhost ~]# su - kafka
마지막 로그인: 화 9월 20 17:30:06 KST 2022 일시 pts/0
[kafka@ka02 ~]$
[kafka@ka02 ~]$ cd /tmp
[kafka@ka02 ~]$
[kafka@ka02 tmp]$ wget http://apache.mirror.cdnetworks.com/zookeeper/stable/apache-zookeeper-3.6.3-bin.tar.gz
...
Saving to: ‘apache-zookeeper-3.6.3-bin.tar.gz’
100%[===================================================================>] 12,516,362 7.49MB/s in 1.6s
2022-09-20 18:23:19 (7.49 MB/s) - ‘apache-zookeeper-3.6.3-bin.tar.gz’ saved [12516362/12516362]
[kafka@ka02 tmp]$
## 다운로드 확인
[kafka@ka02 tmp]$ ll *zoo*
-rw-rw-r--. 1 kafka kafka 12516362 4월 13 2021 apache-zookeeper-3.6.3-bin.tar.gz
[kafka@ka02 tmp]$
## 압축 해제
[kafka@ka01 tmp]$ sudo tar zxf apache-zookeeper-3.6.3-bin.tar.gz -C /opt
로컬 시스템 관리자에게 일반적인 지침을 받았으리라 믿습니다.
보통 세가지로 요약합니다:
#1) 타인의 사생활을 존중하십시오.
#2) 입력하기 전에 한 번 더 생각하십시오.
#3) 막강한 힘에는 상당한 책임이 뒤따릅니다.
[sudo] kafka의 암호:
[kafka@ka01 tmp]$
## 심볼릭 링크 설정
[kafka@ka01 tmp]$ ll /opt
합계 0
drwxr-xr-x. 8 root root 136 9월 12 21:34 VBoxGuestAdditions-6.1.36
drwxr-xr-x. 6 root root 133 9월 20 18:30 apache-zookeeper-3.6.3-bin
drwxr-xr-x. 2 root root 6 10월 31 2018 rh
[kafka@ka01 tmp]$
[kafka@ka03 tmp]$ cd /opt
[kafka@ka03 opt]$ sudo ln -s apache-zookeeper-3.6.3-bin zookeeper
[sudo] kafka의 암호:
[kafka@ka03 opt]$ ll zoo*
lrwxrwxrwx. 1 root root 26 9월 20 18:35 zookeeper -> apache-zookeeper-3.6.3-bin
[kafka@ka03 opt]$
■ Zookeeper 구분 id 파일 생성 (각 Instance 적용)
- ka01서버 : 1, ka02서버 : 2, ka03서버 : 3 으로 서버에 각 각 추가
[kafka@ka01 opt]$ mkdir /tmp/zookeeper
[kafka@ka01 opt]$
[kafka@ka01 opt]$ echo 1 > /tmp/zookeeper/myid
[kafka@ka01 opt]$
[kafka@ka01 opt]$ cat /tmp/zookeeper/myid
1
[kafka@ka01 opt]$
■ Zookeeper Configuration 파일 설정
- #maxClientCnxns=60 주석 해제
- 서버/포트 정보 추가
server.1=ka01:2888:3888
server.2=ka02:2888:3888
server.3=ka03:2888:3888
## 구성 파일 복사
[kafka@ka01 opt]$ cd /opt/zookeeper/conf
[kafka@ka01 conf]$ sudo cp zoo_sample.cfg zoo.cfg
[sudo] kafka의 암호:
## 구성 파일 변경
[kafka@ka01 conf]$ sudo vi zoo.cfg
...
maxClientCnxns=60 #uncomment
server.1=ka01:2888:3888 #add comment, possible ip address instead of ka01
server.2=ka02:2888:3888 #add comment, possible ip address instead of ka02
server.3=ka03:2888:3888 #add comment, possible ip address instead of ka03
...
:wq!
[kafka@ka01 conf]$
## 구성 파일 변경 확인
[kafka@ka01 conf]$ cat zoo.cfg
...
# the maximum number of client connections.
# increase this if you need to handle more clients
maxClientCnxns=60 #uncomment
server.1=ka01:2888:3888 #add comment, possible ip address instead of ka01
server.2=ka02:2888:3888 #add comment, possible ip address instead of ka02
server.3=ka03:2888:3888 #add comment, possible ip address instead of ka03
...
# Be sure to read the maintenance section of the
[kafka@ka01 conf]$
■ Zookeeper 실행/중지/상태
ㅁ 서비스 실행/상태 확인
- ./zkServer.sh start 시작
- ./zkServer.sh status 상태확인
- 인스턴스에 복제에 관련된 leader, follwer가 설정된 부분 확인 가능
[kafka@ka03 ~]$ cd /opt/zookeeper/bin
[kafka@ka03 bin]$
## 시작
[kafka@ka03 bin]$ sudo ./zkServer.sh start
[sudo] kafka의 암호:
/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[kafka@ka03 bin]$
## 상태 확인
[kafka@ka02 bin]$ sudo ./zkServer.sh status
/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[kafka@ka03 bin]$
ㅁ 서비스 중지
## 서비스 중지
[kafka@ka03 bin]$ sudo ./zkServer.sh stop
/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
[kafka@ka03 bin]$
■ Kafka 설치
※ Resources
•https://jisootech.notion.site/jisootech/Kafka_3-2227884d67374f528357aca38298ef00
•programacion.tistory.com/157
•zookeeper.apache.org/doc/current/zookeeperStarted.html
반응형