Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- webflux
- Mirror
- Rebalance
- Zookeeper
- swagger
- JDK
- ProjectLoom
- consumer
- Vmalert
- Brooklin
- ExecutableJar
- NoClassDefFoundError
- OFFSET
- broker
- raft
- restdocs
- kafka
- API문서
- springboot
- 비동기
- Vmagent
- java
- OpenJDK
- JVM
- Reactive
- VictoriaMetrics
- tsdb
- spring
- Reassign
Archives
- Today
- Total
거북이 developer
[Kafka] binary 설치 및 실행 본문
1. Zookeeper 구축
1) Zookeeper 설치
- https://archive.apache.org/dist/zookeeper/ 경로에서 원하는 버전의 zookeeper 를 다운받는다.
- 다운받은 zookeeper 압축파일을 원하는 경로에 해제한다.
2) Zookeeper 설정
- zookeeper configuration 을 참고하여 zookeeper 설정 파일을 정의한다.
- cluster 로 구축해야하므로 설정파일에 zookeeper 로 구축할 각 서버정보를 아래와 같이 정의한다.
server.{zookeeper-1.serverId}={zookeeper-host1}:{follower-port}:{leader-election-port}
server.{zookeeper-2.serverId}={zookeeper-host2}:{follower-port}:{leader-election-port}
server.{zookeeper-3.serverId}={zookeeper-host3}:{follower-port}:{leader-election-port}
** follower-port 와 leader-election-port 는 kafka 에서 쓰는게 아닌 zookeeper 내부 통신용이므로 보통 kafka 가 접근하는 port 설정인 clientPort 설정과 다르게 해주어야 합니다.
** serverId 는 각 zookeeper 서버에 정의해주어야 하는 ID 값이므로 숫자로 중복되지 않게 정의해줍니다.
- 각 zookeeper 서버에 위 설정파일에서 정의한 dataDir 경로 하위에 myid 라는 파일명으로 serverId 값을 기록합니다.(예시에서는 $HOME/data/zookeeper 경로를 dataDir 로 정의)
** example(serverId 를 1로 설정한 zookeeper 노드)
$ pwd
$HOME/data/zookeeper
$ ll
-rw-rw-r-- 1 user user 1 Sep 25 2019 myid
$ cat myid
1
- zookeeper 설정 파일이 있는 경로에 필요한 JVM 환경변수를 정의한 파일이나, log4j.properties 파일을 같이 정의하고 zookeeper 설정 파일이 있는 경로를 ZOOCFGDIR 명으로 환경변수를 설정한다.
** ZOOCFGDIR 환경변수 설정은 설치한 zookeeper 의 conf 디렉토리 하위에 설정파일을 두었다면 하지 않아도 된다.(경로를 변경해야할때 정의한다.)
** JVM 환경변수로 설정해야할 내용은 설치한 zookeeper의 bin 디렉토리 하위에 있는 zkEnv.sh 내용을 참고해서 필요한 사항들을 정의한다.
3) Zookeeper 실행
- 설치한 zookeeper 의 bin 디렉토리 하위에 있는 zkServer.sh 를 아래와 같이 실행한다.
[irteamsu@dev-ncs-wmgq-de1-005-ncl bin]$ ./zkServer.sh start {zoo-conf filename}
** {zoo-conf filename} 은 설정파일을 zoo.cfg 로 했을경우 정의하지 않아도 된다. 파일명이 zoo.cfg 가 아닐경우에만 정의한다.
4) Zookeeper 종료
- 설치한 zookeeper 의 bin 디렉토리 하위에 있는 zkServer.sh 를 아래와 같이 실행한다.
[irteamsu@dev-ncs-wmgq-de1-005-ncl bin]$ ./zkServer.sh stop {zoo-conf filename}
** {zoo-conf filename} 은 설정파일을 zoo.cfg 로 했을경우 정의하지 않아도 된다. 파일명이 zoo.cfg 가 아닐경우에만 정의한다.
2. Apache Kafka 구축
1) Kafka 설치
- https://archive.apache.org/dist/kafka/ 에서 원하는 버전의 kafka 를 다운받는다.
- 다운받은 kafka 압축파일을 원하는 경로에 해제한다.
2) Kafka 설정
- kafka broker config 내용을 참고하여 properites 파일을 작성.
- 설정값중 zookeeper.connect 는 위에서 구축한 주키퍼 서버를 '호스트:포트' 형태로 , 로 구분하여 정의한다.
- 설정파일 정의시 각 broker 노드들을 구분할 수 있는 broker.id 를 숫자형태로 각 서버마다 고유하게 정의한다.
- kafka 실행시 아래의 JVM 환경 변수들을 셋팅하여 적용할 수 있다.
- KAFKA_JMX_OPTS : jmx 관련 설정 정의(단, jmx port 를 해당 환경변수로 설정하고자 한다면, JMX_PORT 환경변수는 설정하지 않는다.)
- JMX_PORT : jmx port 정의(단, KAFKA_JMX_OPTS 에서 -Dcom.sun.management.jmxremote.port 를 정의했을 경우 설정하지 말아야 한다.)
- KAFKA_LOG4J_OPTS : kafka log4j 설정 관련 정의
- LOG_DIR : kafka log 경로 정의
- JAVA_HOME : java home path 정의
- KAFKA_HEAP_OPTS : kafka heap 설정 정의
- KAFKA_JVM_PERFORMANCE_OPTS : kafka jvm 옵션 관련 설정 정의
3) Kafka 실행
- 설치한 kafka 의 bin 하위에 있는 kafka-server-start.sh 를 실행한다.
- 백그라운드 프로세스로 실행하기 위해서는 -deamon 설정을 추가한다.
- 설정파일 경로를 파라미터로 추가한다.
- 만약 설정파일에 정의한 내용을 override 할 설정이 있다면 --override property=value 형태의 옵션을 추가한다.
$ ./kafka-server-start.sh -deamon $CONFIG_DIR/kafka/kafka.properties
4) Kafka 종료
- 설치한 kafka 의 bin 하위에 있는 kafka-server-stop.sh 를 실행한다.
- 종료시 특별히 필요한 파라미터는 없다.
$ ./kafka-server-stop.sh
'Kafka' 카테고리의 다른 글
💔 Kafka 와 Zookeeper 의 헤어질 결심. 그 결말은?? (0) | 2022.08.26 |
---|---|
LinkedIn 의 brooklin 활용 (0) | 2022.08.26 |
[Kafka] Consumer Group Offset Reset (0) | 2022.03.15 |
[Kafka] Reassign Partition 방법 (0) | 2022.03.15 |
[Kafka] OutOfOrderSequenceException (0) | 2022.03.14 |
Comments