빅데이터/카프카

카프카 - (2) 설치

_금융덕후_ 2022. 1. 17. 18:00
728x90
반응형

 

 

카프카 설치

카프카는 자바기반의 언어로 작성되었기 때문에 구동하기 위해서는 자바가 필요하다.
따라서 자바를 설치해 주어야 한다.
해당 포스팅에서는 자바 1.8이 사용되었고, 리눅스 환경에서 실행 되었다.
카프카를 설치하는 서버는 virtualbox와 같은 vm이나 aws와 같은
클라우드 가상환경을 사용하는 것을 추천한다.

 

자바 설치가 완료되면 카프카를 설치한다.
wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz
 
설치가 완료되면 tar 파일의 압축을 풀어준다.
tar xvf kafka_2.12-2.5.0.tgz
 
다음은 카프카가 사용할 Heap의 사이즈를 정해주어야 한다.
home 디렉토리의 .bashrc 파일에 다음 한줄을 넣어주어 Heap사이즈를 512메가로 설정한다.
커맨드:
vi ~/.bashrc
 
내용 수정
...
export KAFKA_HEAP_OPTS="-Xmx512m -Xms512m"
 
그리고 esc + :wq 커맨드를 사용해 vi를 저장하고 닫아준다.
 
마지막으로 .bashrc 파일을 시스템에 적용시켜준다.
source ~/.bashrc
 

카프카 실행

카프카가 실행되기 위해서는 분산 코디네이터인 주키퍼가 함께 구동되어야 한다.
다음 커맨드로 주키퍼를 실행시킨다.
cd kafka_2.12-2.5.0
bin/zookeeper-server-start.sh -daemin config/zookeeper.properties
 
-daemon 옵션을 주면 백그라운드에서 실행되고 터미널을 종료시켜도 주키퍼 프로세스가 죽지 않는다.
 
주키퍼가 제대로 돌아가고 있는지 확인하고 싶다면 다음 커맨드를 사용해 확인해본다.
jps -vm
 
혹은 프로세스가 잘 돌아가고 있는지 확인해 볼수도 있다.
ps aux | grep zookeeper
 
이제 카프카를 실행시켜 본다.
bin/kafka-server-start.sh -daemon config/server.properties
 
동일하게 jps 혹은 ps 커맨드를 사용해 카프카가 잘 동작하는지 확인한다.
 

카프카와 통신

카프카가 제대로 동작하는 것을 확인하기 위한 다른 방법은 네트워크를 통해 다른 기기에서 확인해 보는 것이다.
이제 다른 컴퓨터에서 카프카를 설치한 서버와 통신을 해보고자 한다.
아래 링크에서 카프카를 로컬 컴퓨터에 설치한다.
 
설치된 디렉토리에서 다음 명령어를 통해 압축을 풀어준다.
tar -xvf kafka_2.12-2.5.0.tg
 
그리고 압축이 풀린 디렉토리에 들어가 다음을 실행한다.
bin 디렉토리에는 카프카와 통신할 수 있는 여러 스크립트들이 제공되어있다.
*아래 커맨드의 0.0.0.0를 카프카가 설치된 서버의 주소로 대체하자.
cd kafka_2.12-2.5.0
bin/kafka-broker-api-versions.sh --bootstrap-server 0.0.0.0:9092
 
통신에 성공했다면 아래와 같은 메시지를 볼 수 있다.
*johnny는 카프카 브로커가 설치된 서버 이름이다.
johnny:9092 (id: 0 rack: null) -> (
Produce(0): 0 to 8 [usable: 8],
Fetch(1): 0 to 11 [usable: 11],
ListOffsets(2): 0 to 5 [usable: 5],
Metadata(3): 0 to 9 [usable: 9],
...
)
 
네트워크를 통해서도 가능하지만, 당연히 같은 서버 내에서도 통신이 가능하다.
서버의 ip 혹은 localhost:9092를 통해서도 실험해보자.
 
혹시 다음과 같은 에러가 난다면,
Error connecting to node johnny:9092 (id: 0 rack: null) (org.apache.kafka.clients.NetworkClient)
java.net.UnknownHostException: johnny: nodename nor servname provided, or not known
...
 
기기의 /etc/hosts에 ip와 이름을 등록하도록 하자:
0.0.0.0 johnny
 
 
728x90
반응형

'빅데이터 > 카프카' 카테고리의 다른 글

카프카 - (5) 컨슈머  (0) 2022.02.07
카프카 - (4) 프로듀서  (0) 2022.01.31
카프카 - (3) 토픽  (0) 2022.01.24
카프카 - (1) 개념  (0) 2022.01.10