728x90
반응형

빅데이터/카프카 5

카프카 - (5) 컨슈머

카프카 프로듀서 카프카 브로커를 서버, 파티션을 저장소라고 가정하면, 카프카 컨슈머는 카프카로부터 데이터를 제공받아 소비하는 클라이언트에 해당한다. 메시지 소비 지난 포스팅에서 생성한 토픽 kafka-test에 메시지를 소비해보자. 메시지를 소비하는 것 역시 bin 디렉토리의 스크립트 중 하나를 활용한다. --from-beginning 옵션을 주면 처리 토픽에서 보관중인 첫 오프셋의 데이터부터 모두 받아오게 된다. bin/kafka-console-consumer.sh --bootstrap-server johnny:9092 \ --topic kafka-test \ --from-beginning value1 value2 value1 value2 위의 예제에서는 value값만 가져온다. 따라서 "print.k..

카프카 - (4) 프로듀서

카프카 프로듀서 카프카 브로커를 서버, 파티션을 저장소라고 가정하면, 카프카 프로듀서는 카프카에게 데이터를 제공하는 클라이언트에 해당한다. 메시지 전송 지난 포스팅에서 생성한 토픽 kafka-test에 메시지를 전송해보자. 메시지를 전송하는 것 역시 bin 디렉토리의 스크립트 중 하나를 활용한다. bin/kafka-console-producer.sh --bootstrap-server johnny:9092 -- topic kafka-test --property "parse.key=true" --property "key.seperator=";" > key1;value1 > key2;value2 parse.key 프로퍼티는 전송할 메시지에 키를 추가하는 옵션이다. key.seperator 프로퍼티는 전송할 메..

카프카 - (3) 토픽

카프카 토픽 생성 먼저 지난번 포스팅에서 사용한 네트워크를 통한 통신으로 토픽을 생성해본다. 로컬 기기의 kafka_2.12-2.5.0 디렉토리에서 다음 커맨드를 실행해 준다. * 지난 포스팅에서 카프카가 설치된 서버를 /etc/hosts에 johnny로 등록해준 것을 기억하자. bin/kafka-topics.sh --create --bootstrap-server johnny:9092 --topic kafka-test 토픽 생성이 성공적으로 되었다면 다음과 같은 메시지를 출력할 것이다. Created topic kafka-test. 토픽 생성 규칙 카프카 토픽은 영어 대소문자와 숫자, 그리고 대쉬(-), 언더스코더(_), 마침표(.) 로 조합할 수 있다. 한가지 특별한 규칙이 있다면, 언더스코어(_)와 ..

카프카 - (2) 설치

카프카 설치 카프카는 자바기반의 언어로 작성되었기 때문에 구동하기 위해서는 자바가 필요하다. 따라서 자바를 설치해 주어야 한다. 해당 포스팅에서는 자바 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 파일에 다음 한줄을 넣어주어..

카프카 - (1) 개념

카프카란? 카프카는 파편화된 데이터 수집 및 분배 작업을 위해 링크드인에서 고안된 분산 큐(queue) 시스템이다. 상용 서비스를 개발하다 보면 서비스에서 생겨나는 여러 다른 데이터를 여러 다른 시스템으로 전송하게 된다. 이러한 데이터들을 단일화된 시스템으로 처리하지 않는다면 시스템이 커질수록 관리가 어려워진다. 카프카는 이러한 문제를 하나의 확장 가능한 시스템에서 처리하기 위한 시스템이다. 빅데이터 시스템 하둡과 같은 빅데이터 시스템은 주로 두가지의 코어한 개념을 지닌다. 바로 고가용성(High Availability)과 장애허용성(Fault Tolerance) 이다. 빅데이터 시스템을 공부할 때에는 이 두가지 개념을 항상 기억하고 학습하면 도움이 된다. 고가용성 (High Availability) 고..

728x90
반응형