카프카 브로커를 설치하기 앞서 카프카를 실행하기 위한 자바를 설치하도록 한다.
카프카는 스칼라와 자바로 작성되어 JVM 환경 위에서 실행된다.
자바는 Open JDK를 사용할 예정이다.
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
설치가 완료되었으면 자바가 잘 설치 되었는지 확인한다.
java -version
위와 같이 자바 버전에 나오면 성공이다.
카프카 브로커를 실행하기 위해 카프카 바이너리 패키지를 다운로드 한다.
wget 명령어로 카프카 바이너리 패키지 URL을 넣어 다운로드 받는다.
wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz
다운로드가 완료되면 압축을 tar 명령어와 xvf 옵션을 통해 압축을 풀어준다.
tar xvf kafka_2.12-2.5.0.tgz
압축을 풀면 kafka_2.12-2.5.0 디렉터리가 생기게 된다.
카프카 브로커의 특징은 레코드의 내용을 페이지 캐시로 시스템 메모리를 사용하고 나머지를 힙메모리에 저장하여 사용하는 특징이 있다.
보통 카프카 브로커를 운용할 때는 5GB 이상으로 힙 메모리를 설정하는 것이 일반적이다.
카프카 패키지의 힙 메모리 기본 값은 카프카 브로커 1GB, 주키퍼 512MB로 기본 설정 되어있다.
하지만 우리가 사용하는 AWS 클라우드 인스턴스는 안타깝게도 1GB 메모리만 지원한다.
실습을 할 때는 이렇게 큰 메모리가 필요없기 때문에 힙 메모리 환경변수 설정이 필요하다.
export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"
echo KAFKA_HEAP_OPTS
export를 통해 환경변수를 세팅해준다.
하지만 터미널이 종료가 되면 해당 환경변수는 사라지기 때문에 .bashrc에 저장하여 터미널이 재실행 될 때 다시 환경변수가 세팅되게 설정한다.
nano ~/.bashrc
source ~/.bashrc
echo $KAFKA_HEAP_OPTS
하단에 힙메모리 설정을 해준다.
이후 source 명령어를 통해 수정한 .bashrc를 바로 반영하도록 명령을 실행한다.
Xms는 힙 메모리의 최소 사이즈를 의미하고, Xmx는 힙 메모리 최대 사이즈를 의미한다.
카프카 실행 스크립트를 확인하면 다음과 같은 명령어들을 확인 할 수 있다.
cd kafka_2.12-2.5.0/bin
cat kafka-server-start.sh
첫 번째 노란색 밑줄을 확인하면 -Xmx1G -Xms1G 를 확인 할 수 있다.
이것은 카프카 브로커의 기본 힙 메모리 세팅은 1GB로 지정되있으며 이전 처럼 환경변수 세팅이 되어 있지 않으면 해당 기본값으로 세팅이 된다.
두 번째 노란색 밑줄은 -daemon 옵션으로 카프카 브로커가 실행 될 때 백그라운드로 실행 될지, 포그라운드로 실행할지 설정할 수 있다. 포그라운드로 실행할 때는 -deamon을 지우면 된다.