본문 바로가기

PBL 빅데이터/산학프로젝트

[산학프로젝트] Quick Start VM안에 Kafka 설치하기

1) Kafka 파일 다운 받기

Kafka를 먼저 다운 받아준다. Kafka의 버전이 변경될 수도 있음으로 https://www.apache.org/dyn/closer.cgi?path=/kafka/2.8.0/kafka_2.13-2.8.0.tgz

사이트에 들어가서 확인해주고 최신 버전으로 다운 받아준다.

wget <https://mirror.navercorp.com/apache/kafka/2.8.0/kafka_2.13-2.8.0.tgz>

 

2) 파일 압축 풀어주기

tar -xzf kafka_2.13-2.8.0.tgz

새로운 버전으로 예시와 다르게 변경되었으면, 파일의 이름을 복붙해서 진행해주면 된다.

 

3) 압축 풀린 파일 확인하기

cd kafka_2.13-2.8.0

 

압축을 푼 곳을 확인해보면 압축이 풀려서 폴더가 생성되어있음을 알 수 있다. 폴더안에 bin, config등의 파일들이 위치하고 있다.

※ 압축이 풀린 파일은 Nifi의 압축을 푼 폴더와 비슷하다고 생각하면 보다 쉽게 사용할 수 있다. bin 폴더에서 실행하고 conf폴더에서 환경 설정을 진행한 것과 같이 bin 폴더에서 실행하고 config폴더에서 환경 설정을 해줄 수 있다.

* Nifi

bin : nifi.sh 파일이 위치해서 start와 stop이 진행 가능
conf : ip, port등의 환경 설정이 가능

* Kafka

bin: kafka-server-start.sh, kafka-server-stop.sh 파일이 위치해서 start와 stop이 진행 가능하며, Nifi와는 달리 한 가지 파일이 아닌 start와 stop으로 폴더가 나누어짐(kafka, zookeeper 파일 위치)
config : kafka와 zookeeper에 대한 port의 환경 설정이 가능

 

 

4) 환경 설정 확인하기

먼저, Kafka를 실행하기 위해서는 Zookeeper가 미리 실행되어있는 상태로 진행되어야 한다는 점을 유의해야한다. 환경 설정이 가능한 지를 먼저 확인해본다.

# 압축이 풀린 폴더안의 config 폴더에서 진행

# Zookeeper

vi zookeeper.properties



# Kafkazookeeper.propertiezookeeper.properties

vi server.properties

zookeeper.properties를 확인한 상황으로 clientPort번호도 확인이 가능하다.

 

5) start, stop 파일 확인하기

실행하기에 앞서 start와 stop 파일이 존재하고 있는지를 확인해준다.

# 압축이 풀린 폴더안의 bin 폴더에서 진행

# Zookeeper

vi zookeeper-server-start.sh



# Kafka

vi kafka-server-start.sh

이런식으로 확인이 가능한데 첫 문장의 !/bin/bash 는 Kafka의 설치를 찾다보면 많이 찾아볼 수 있는 문장인데 실행 파일안에 위치하고 있다. 실제로 리눅스 환경에서 검색하면 찾을 수 없다.

 

6) 실행하기

실행하기 위한 순서로는 Zookeeper → Kafka 임을 유의한다.

Nifi와 동일하게 sh파일을 실행하기 위해서 ./ 를 붙여서 진행해준다. 실행 파일 뒤에는 config의 위치를 추가로 작성해주어야 한다는 점은 Nifi와의 차이점이다.

# 압축이 풀린 폴더안에서 진행

# Zookeeper

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties



# Kafka

bin/kafka-server-start.sh -daemon config/server.properties

명령어를 실행한 후에 크게 달라지는 것이 없는 것 같다고 느껴질 수 있다. 이를 확인하기 위해서 topic을 생성하고 확인해보고 메세지도 보내보아야한다.

 

※ 실행이 안될 경우,

# 실행된 프로그램 확인하기

jps

jps를 입력해서 kafka가 실행되고있는지를 확인해본다. 안된다면 -daemon 빼고 진행해본다.