1. 자바 다운로드
2. 카프카 패키지 다운로드
wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz
3. 패키지 압축 풀기
tar xvf kafka_2.12-2.5.0.tgz
4. 카프카 브로커 힙 메모리 설정
카프카 패키지의 힙 메모리는 브로커가 1G, 주키퍼가 512MB로 기본 설정되어 있습니다. 그런데
AWS EC2 프리티어의 경우 메모리가 1G로
카프카를 실행하면 메모리가 부족하여 에러와 함께 실행되지 않게 됩니다.
이 때문에 힙 머모리 사이즈를 미리 환경 변수로 사이즈를 조절해야 합니다.
cd kafka_2.12-2.5.0/
export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"
위와 같이 터미널에서 사용자가 입력한 변수는 테미널 세션이 종료되고 나면 다시 초기화됩니다.
이를 해결 하귀 위해서는 bashrc 파일에 넣어야 합니다.
vi ~/.bashrc
위와 같이 편집 후 적용한 뒤 echo를 통해서 조회하면 정상적으로 출력됩니다.
source ~/.bashrc
카프카 브로커 실행시 메모리 설정 부분은 아래의 명령어를 통해서 확인 하실 수 있습니다.
cat bin/kafka-server-start.sh
5. 카프카 브로커 실행 옵션 설정
카프카 브로커가 클러스터 운영에 필요한 옵션은 config 하위의 server.properties에서 설정할 수 있습니다.
실습용 카프카 브러커를 실행할 것이므로 advertised.listener만 설정 합니다.
(카프카 클라이언트 또는 커맨드 라인 툴을 브로커와 연결할 때 사용됨)
접속하고 있는 인스턴스의 퍼블릭 IP와 기본 포트 9092를 PLAINTEXT://와 함께 붙여주고 주석을 해제해 줍니다.
6. 주키퍼 실행
분산 코디네이션 서비스를 저공하는 주키퍼는 카프카의 클러스터 설정 리더 정보, 컨트롤러 정보를 담고 있어서 카프카를 실행하는 데 필수 애플리케이션입니다.
주키퍼 실행 명령어
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
주키퍼가 정상적으로 실행되었는 지 확인 명령어
jps -vm
저의 경우 백엔드 서버가 2개 돌어가고 있어서 다른 애플리케이션 정보도 떴지만 여러분은 빨간색 영역만 확인하시면 됩니다.
7. 카프카 브로커 실행 및 로그 확인
카프카 브로커 실행 명령어
bin/kafka-server-start.sh -daemon config/server.properties
카프카 브로커 실행 확인 명령어
jps -m
저는 이 과정에서 실행이 되지않았는데 로그 확인은 -daemon을 지우시면 확인하실 수 있습니다. 로그를 확인하니 메모리가 부족하다 였습니다. 역시 어플리케이션 2개에 주키퍼까지 해놓고 카프카까지는 무리였나봅니다. 두개의 어플리케이션을 죽이고 다시 시도했습니다 .ㅎ
카프카 클라이언트 개발 및 클러스터 운영 이슈 등이 카프카 브러커에 로그로 남기 때문에 로그를 통해서 문제를 해결할 수 있습니다. 이 때문에 로그는 굉장히 중요하죠 .ㅎ
카프카 로그 확인 명령어
tail -f logs/server.log
책에서는 이렇게 만들고 로컬에서 테스트 하는 것으로 끝이 일단락 됩니다.
그런데 매번 이렇게 다운받고 설치하고 하는건 힘든데 도커이미지가 혹시 있나 찾아보니...
있더군요..
https://github.com/wurstmeister/kafka-docker
클론받아서 docker-compose를 이용하는 방식이... 후후
Reference
아파치카프카 애플리케이션 프로그래밍 with 자바 - 최원영
'Kafka' 카테고리의 다른 글
1. Kafka 간단 정리 (0) | 2021.05.20 |
---|---|
Kafka 공부 시작 (0) | 2021.05.20 |