개인(팀) 프로젝트/기타 프로젝트 & 활동

05. 플럼과 카프카 개념+설치

한소희DE 2021. 6. 17. 01:03

 

 

목차

플럼이란

플럼 설치

카프카란

카프카 설치

 


 

 

01. 플럼이란

 

이번 프로젝트에서는, 빅데이터 수집을 위해 플럼을 사용한다.

플럼은 DB, API, 파일 등으로부터의 로그 데이터 수집을 지원하는 소프트웨어다.

 

사실 요즘은 플럼이 오래된 기능이라고 잘 쓰이지 않고, 이를 대체하여 현업에선 fluentd 등을 더 많이 찾는다고 한다.

 

 

2-1. 플럼의 구조

플럼은 크게 5가지로 구성되어 있다.

 

플럼의 주요 구성요소
소스(Source) 데이터 소스 파일로부터 데이터 수집
싱크(Sink) 채널로부터 데이터 전달받아 적재 장소로 전달
HDFS, ElasticSearch, Hive 등을 제공
채널(Channel) 소스와 싱크를 연결
인터셉터(Interceptor) 수집 중 데이터 가공을 원할 때 선택적으로 사용
에이전트(Agent) 하나의 파이프라인 세트(소스,인터셉트,채널,싱크)를 의미

 

일반적인 파이프라인은,

 

소스 - (인터셉트) - 채널 - 싱크

 

로 구성되어있으며, 싱크를 여러 개로 복사해 전달할 수도 있고 소스를 여러 개로 둘 수도 있다. 비즈니스 로직에 따라 복합적인 처리가 가능하다.

 

 


 

02. 플럼 설치

 

클라우데라 매니저를 활용하면 손쉽게 설치가 가능하다.

앞서 만들어두었던 Cluster 1에 플럼 서비스를 추가해보겠다.

 

 

그 후, 역할 호스트 (즉 설치할 서버명)는 Server02에 설치하도록 하겠다.

java heap 등 파라미터 값을 원하는 대로 조절해주면, 설치는 끝이다. 클라우데라 매니저를 쓰면 매우 간편하다!

 


 

03. 카프카란

 

카프카(Kafka)는 리얼타임 데이터를 수집할 때, 초단위로 계속 가져오는 것이 아니라 한 번에 모아서 가지고 올 수 있도록 하는 기능이다.

 

🔥 카프카가 왜 필요할까?

중간에 일시적 서버 오류가 날 때, 휘발되는 실시간 로그 데이터들은 DB에 집계될 수 없다. 하지만 카프카가 있으면 모아서 전송하고 어느 정도 임시 저장을 하기 때문에 위와 같은 오류에 대처할 수 있다. 그리고 모아서 한 번에 전송해서, 성능이 떨어지지 않는다.

 

 

3-1. 카프카의 구조

카프카는 크게 4가지의 구조로 이루어져 있다.

카프카의 주요 구성요소
브로커(Brocker) Topic이 생성되는 물리적 서버
토픽(Topic) 데이터의 임시 저장소
프로바이더(Provider) 토픽으로 데이터를 전달. 애플리케이션에서 카프카 라이브러리 이용해 구현
컨슈머(Consumer) 토픽에서 데이터를 수신. 애플리케이션에서 카프카 라이브러리 이용해 구현

 

 

일반적인 파이프라인은,

 

프로바이더 - 브로커 내 토픽 - 컨슈머

 

로 이뤄져 있다. 이것 또한 플럼과 마찬가지로, 여러 개의 프로바이더에서 여러 개의 컨슈머로 전달할 수 있다. 그리고 여러 개의 중개인을 둘 수도(멀티 중개인과 멀티 노드), 여러 개의 토픽을 둘 수도 있다. 이것 또한 비즈니스 로직에 따라 다르다.

 


 

04. 카프카 설치

 

카프카 설치도 플럼과 동일하게, 클라우데라 매니저에서 선택해 설치할 수 있다.

 

 

이때, 역할 할당 사용자 지정은 Brocker만 Server02로 지정해준다. 그후 저장을 하면 된다!

설치가 다 완료되면, 원하는 파라미터값을 구성에서 조정해주면 된다.

이번 프로젝트에서는 카프카가 데이터를 보관하는 기간을 7일에서 15분으로 줄였다. (저장공간 이슈로 인해)

 

 

이렇게 하면 카프카와 플럼 설치는 끝이다. 이제 실습을 통해, 카프카와 플럼이 잘 설치되었는지 확인해보자.

다음 포스팅에서는, 플럼과 카프카를 실행해 볼 것이다! (드디어!)