[kafka] 웹 페이지 이벤트 적재 파이프라인 생성 - 1) 요구 사항과 정책 및 기능 정의하기
·
AI & 빅데이터/kafka
웹 페이지에서 생성되는 이벤트들을 분석하기 위해, HDFS와 엘라스틱서치에 적재하는 파이프라인을 만드는 프로젝트를 개발해보자. 요구사항 이름을 입력하고 자신이 좋아하는 색상을 고르는 버튼을 누르면 해당 이벤트와 유저 에이전트 정보를 카프카 토픽으로 전달하고, 최종적으로 하둡과 엘라스틱서치에 적재되도록 한다. - 하둡은 대용량 데이터를 분석 처리할 수 있으며, HDFS는 대용량 파일을 하둡에 안정적으로 저장할 수 있게 하는 파일 시스템이다. - 엘라스틱서치는 아파치 루씬 기반 오픈소스 분산 검색 엔진이다. 엘라스틱서치에 데이터를 쌓아서 많은 데이터를 저장/검색/분석할 수 있으며 키바나를 통해 데이터를 시각화하고 분석할 수 있다. 정책 및 기능 정의 적재 정책 - 적재 파이프라인을 만들 때 가장 먼저 결정해..
[kafka] kafka connect, 카프카 커넥트
·
AI & 빅데이터/kafka
kafka connect 카프카 오픈소스에 포함된 툴 중 하나로 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 어플리케이션이다. 커넥트는 특정한 작업 형태를 템플릿으로 만들어놓은 커넥터(connector)를 실행함으로써 반복 작업을 줄일 수 있다. 파이프라인 생성 시 자주 반복되는 값들(토픽 이름, 파일 이름, 테이블 이름 등)을 파라미터로 받는 커넥터를 코드로 작성하면 이후에 파이프라인을 실행할 때 코드를 작성할 필요가 없다. 커넥터는 각 커넥터가 가진 고유한 설정값을 입력 받아 데이터를 처리한다. 커넥터는 프로듀서 역할을 하는 '소스 커넥터(source connector)'와 컨슈머 역할을 하는 '싱크 커넥터(sink connector)' 2가지로 나뉜다. 파일을 주고받는..
[kafka] 카프카 클라이언트 개발하기 - 어드민 API
·
AI & 빅데이터/kafka
[kafka] 카프카 클라이언트 개발하기 - 프로듀서 API [kafka] 카프카 클라이언트 개발하기 - 컨슈머 API 앞서, 프로듀서와 컨슈머를 통해 데이터를 주고받는 실습을 진행해보았다. 카프카 클라이언트에서는 내부 옵션을 설정/조회하기 위해 AdminClient 클래스를 제공한다. AdminClient 클래스를 활용하면 클러스터의 옵션과 관련된 부분을 자동화할 수 있으며, 아래와 같은 방법으로 활용될 수 있다. - 카프카 컨슈머를 멀티 스레드로 생성할 때, 구독하는 토픽의 파티션 개수만큼 스레드를 생성하고 싶을 때, 스레드 생성 전에 해당 토픽의 파티션 개수를 어드민 API를 통해 가져올 수 있다. - AdminClient 클래스로 구현한 웹 대시보드를 통해 ACL(Access Control Lis..
[kafka] kafka의 기본 개념 정리 - 토픽, 파티션, 레코드
·
AI & 빅데이터/kafka
토픽, 파티션 토픽은 카프카에서 데이터를 구분하기 위해 사용하는 단위이다. 토픽은 1개 이상의 파티션을 소유하고 있다. 파티션에는 프로듀서가 보낸 데이터들이 들어가 저장되는데, 이 데이터를 '레코드'라고 부른다. 파티션은 카프카의 병렬처리의 핵심으로써 그룹으로 묶인 컨슈머들이 레코드를 병렬로 처리할 수 있도록 매칭된다. 컨슈머의 처리량이 한정된 상황에서 많은 레코드를 병렬로 처리하는 가장 좋은 방법은 컨슈머의 개수를 늘려 스케일 아웃하는 것이다. 컨슈머 개수를 늘림과 동시에 파티션 개수도 늘리면 처리량이 증가하는 효과를 볼 수 있다. 토픽 이름 제약 조건 토픽의 이름을 생성할 때 아래와 같은 제약 조건이 있다. 빈 문자열 토픽 이름은 지원하지 않는다. 토픽 이름은 마침표 하나(.) 또는 마침표 둘(..)..
[kafka] kafka의 기본 개념 정리 - 카프카 브로커, 클러스터, 주키퍼
·
AI & 빅데이터/kafka
카프카 브로커, 클러스터, 주키퍼 카프카 브로커 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체이자, 데이터를 분산 저장하여 장애가 발생하더라도 안전하게 사용할 수 있도록 도와주는 애플리케이션이다. 하나의 서버에는 한 개의 카프카 브로커 프로세스가 실행되며, 데이터를 안전하게 보관하고 처리하기 위해 3대 이상의 브로커 서버를 1개의 클러스터로 묶어서 운영한다. 카프카 클러스터로 묶인 브로커들은 프로듀서가 보낸 데이터를 안전하게 분산 저장하고 복제하는 역할을 수행한다. 데이터 저장, 전송 프로듀서로부터 데이터를 전달받으면 카프카 브로커는 프로듀서가 요청한 토픽의 파티션에 데이터를 저장하고 컨슈머가 데이터를 요청하면 파티션에 저장된 데이터를 전달한다. 프로듀서로부터 전달된 데이터는 파일 시스템에 저..