꾸준히 하고싶은 개발자

빅데이터 수집 Kafka 본문

빅데이터 플랫폼

빅데이터 수집 Kafka

프라우스 2022. 10. 21. 23:10

kafka

-MOM(Message Oriented Midden) 소프트웨어 중 하나로서 대규모 발생하는 메시지성 데이터를 비동기 방식으로 중계하는 역할을 한   다.

-원천 시스템으로 부터 대규모 트랜젝션 데이터가 발생 했을 때  중간에 데이터를 버퍼링 하면서 타깃 시스템에 안정적으로 전송해 주는 중간 시스템이 Kafka 다

-2011년 처음으로 링크드인에서 개발 되면서 2011년 6월에 아파치 인큐레이터에 등록 됬으며 불과 1년 만에 2012년 10월 아파치 최상위 프로젝트로 승격된다.

 

kafka 아키텍처

카프카는 클러스터는 방식은 세가지  아키텍처 로 구성이 가능하며 이때 주키퍼를 사용해야한다.

싱글노드 /싱글브로커

1대의 Kafka를 설치 하고 1개의 Broker만 구성한  아키택처 이다. 대량의 발행/소비 요건이 없고 업부 도메인이 단순 할 때 이용한다.

 

멀티브로커 / 싱글노드

1대의 Kafka 서버에 2개의 Broker를 구성한 아키텍처다  물리적인 카프카 서버가 1대이므로 역시 대량의 발행 / 소비 요건에는 사용하기 어렵지만 업무 도메인이 복잡해서 메시지 처리를 분리 관리해야 이용한다.

-아키텍처 2대 이상의 카프카 서버로 멀티 브로커를 만들었다. 대규모 발행/소비 데이터 처리에 적합하며 물리적으로 나눠진 브로커 간의 데이터 복제가 가능해 안정성이 높다 

-업무 도메인별 메시지 그룹을 분류 할 수있어 복잡한 메시지  송/수신에 활용하면 적합하다.

Kafka를 활용하는 목적은 플럼이 아주 빠르게 발생하는 데이터를 실시간으로 수집하게 되면 이를 최종 목적지에 전달하기 전 중간에서 안정적인 버퍼링 처리가 필요해서다 .

-속도가 매우 빠른 데이터로서 플럼 입장에서 플럼 입장에서 수집이 부담스럽다.

-Kafka 와 같은 분산 환경의 대규모 중간 저장소 가 완충 역할을 함으로써 안정적인 수집 아키텍처를 구성할 수있다.

-플럼이 수집한 데이터를 Kafka를 거치지 않고 곧바로 타킷 저장소인 HBase에 전송하는 그림인데 Hbase에 장애가 발생하면 플럼의 Channel에 전송하지 못한 데이터들이 빠르게 쌓이면서 곧바로 플럼의 장애로도 이어진다. 결국 실시간으로 발생하고 있는데이터 수집이 블가능해져 데이터 유실이 발생한다.

 

 

 

실습

프로듀서 생성 (mit)라는 생성

kafka Topic 생성
kafka-topics --create --zookeeper server02.hadoop.com:2181 --replication-factor 1 --partitions 1 --topic 파일명

 

프로듀서 생성
kafka-console-producer --broker-list server02.hadoop.com:9092 --topic 파일명

 

리스트 보기


kafka-topics --list --bootstrap-server server02.hadoop.com:9092
kafka-topics --list --bootstrap-server 192.168.56.102:9092

 

삭제 
kafka-topics --delete --zookeeper server02.hadoop.com:2181 --topic 파일명

 

컨슈머 생성(보기)
kafka-console-consumer --bootstrap-server 192.168.56.102:9092 --topic mit --partition 0 --from-beginning

 

kafka Topic 생성
kafka-topics --create --zookeeper server02.hadoop.com:2181 --replication-factor 1 --partitions 1 --topic 파일명

토픽생성

리스트 보기 
kafka-topics --list --bootstrap-server server02.hadoop.com:9092
kafka-topics --list --bootstrap-server 192.168.56.102:9092

리스트 확인하기

mit 리스트 확인하기 

프로듀서 생성
kafka-console-producer --broker-list server02.hadoop.com:9092 --topic mit

삭제 
kafka-topics --delete --zookeeper server02.hadoop.com:2181 --topic mit

삭제 되었는지 확인하기 

실행하기

 

 

컨슈머 명령어 확인하기

 

결과물확인