Kafka 파티션 갯수를 늘일수있지만, 줄일수없는 이유 : InvalidPartitionsException
·
DATA Engineering/Kafka
선요약 Data처리량 증가에 대한 가장 빠른 해결방법은 Consumer와 Partition 갯수를 늘리는것이다 Partition 갯수를 늘릴수는 있지만, 줄일수는 없다. Partition을 제거하게되면, 제거된 Partition의 Segment를 재배치 해줘야한다. Segment를 재배치 하는 리소스가 복합적으로 너무 방대해서, 해당 기능을 제공하고있지 않다. 이 내용은 인프런 데브원영 강의. 아파치 카프카 애플리케이션 프로그래밍 강의 중, 챕터4에서 나온 내용입니다. 문제상황 kafka-topics.sh 를 사용하여 토픽을 생성합니다. 따로 옵션을 수정하지 않아서 기본옵션으로 생성됩니다. 이후 alter 옵션을 사용하여 Partition의 갯수를 10개로 늘립니다 이 부분은 카프카의 핵심입니다. Dat..
챕터4. 기타) 카프카 실습 환경 구성
·
DATA Engineering/Kafka
카프카 설치하고, 실습환경 설정하는 부분만 따로 정리했다 로컬에서 카프카 바이너리 설치(2.5.0) apache kafka 홈페이지 : https://kafka.apache.org/downloads • Scala 2.12 - kafka_2.12-2.5.0.tgz (asc, sha512) 다운로드 JVM 설치 1.8.0 or 그 이상 config 설정 config\server.properties listeners 경로 localhost:9092 advertiesd.linstenrs 경로 : localhost:9092 log.dirs kafka디렉토리에 data폴더 생성, 이후 log.dirs 경로에 지정해줌 서버 제대로 켜져있는지 테스트 ( 주키퍼 → 브로커 순서 ) bin/zookeeper-server-..
섹션4. 카프카 CLI 활용
·
DATA Engineering/Kafka
kafka-topics.sh : 토픽을 명시적으로 만들때 사용 kafka-topics : 토픽관련 옵션 create : 만들겠다 bootstrap-server : 서버를 my-kafka:9092 서버의 주소는 이곳이고 topic : 토픽의 이름은 이거다 확인할때 describe 옵션 추가 토픽 hello.kafka2 생성 파티션의 갯수가 10개인것을 확인 (선택옵션을 지정해줘서) 토픽 test를 생성. 따로 설정을 안해줘서 기본값으로 지정된모습 옵션을 수정할때 사용하는 명령어 alter 를 써서 partitions 갯수를 10개로 늘림 만약 alter옵션을 써서 파티션의 갯수를 줄이려한다면? 줄일수는 없다고 에러남 파티션 갯수를 늘릴수는 있지만, 줄일수는 없다. 파티션 갯수를 늘릴수는 있지만, 줄일수는 ..
섹션3. 카프카 클러스터 운영
·
DATA Engineering/Kafka
아파치 카프카 클러스터를 운영하는 방법 구분 온프레미스(on-premise) : 자체 전산실에 서버를 구축 Iaas(Infrastructure-as-a-Service) : 가상 컴퓨터 리소스를 발급받아서 사용 (AWS, GCP) Paas(Platform-as-a-Service) : 애플리케이션 개발 및 실행환경 제공 (Aws Lambda) Saas(Software-as-a-Service) : 소프트웨어 배포 및 실행만 담당 On-Premise 오픈소스 카프카 설치 및 운영 기업용 카프카(Confluent, 튜닝 목적으로 사용하기 위함) 사용 Iaas 가상 컴퓨팅 리소스 Saas 컨플루언트 클라우드, AWS MSK 다양한 주변 생태계(ksqlDB, 모니터링 도구) 기능을 제공 오픈소스 카프카를 직접 설치시..
섹션 2. 카프카 기본 개념 설명
·
DATA Engineering/Kafka
브로커, 주키퍼 브로커 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체 데이터를 분산저장하여 장애가 발생하더라도, 안전하게 사용할수 있도록 해줌 1개의 서버에, 1개의 카프카 브로커 프로세스가 실행된다 데이터를 안전하게 처리하기위해, 3대이상의 브로커 서버를 1개의 클러스터로 묶어서 사용 주키퍼 카프카 클러스터를 실행하기 위해서 주키퍼를 사용 카프카 클러스터 갯수에 맞춰서, 주키퍼도 갯수를 맞춤 주키퍼의 root znode에, 카프카클러스터별 znode를 만들고 카프카 클러스터 실행시 주키퍼의root가 아닌, 클러스터별znode로 설정해서 실행 브로커 역할 컨트롤러 카프카 클러스터의 다수브로커 중 한대가 컨트롤러 역할을한다. 컨트롤러는 다른브로커들의 상태를 체크하고, 브로커가 클러스터에서 빠지면..
섹션 1. 아파치 카프카의 역사와 미래
·
DATA Engineering/Kafka
정리용 간단용어설명 [K] : Kafka, 카프카 (D) : DATA, 데이터 [P] : Producer, 프로듀서 [C] : Consumer, 컨슈머 Kafka는 링크드인의 장애를 막으려고 만들었다 Source APP : Target APP 1 : 1 로 대응되는 시스템관계에서 시스템이 확장되면 → N : M 까지 사이즈가 커짐 이때 장애가 발생한다면? 하나의 시스템에 연동된 모든 APP에 장애가 발생하는 상황이 되는거임 초기 Linkedin에서는 N개의 Source APP ⇒ M개의 Target APP 의 관계를 가지고 있었는데 중앙 시스템이 없다보니, 프로그램 관리가 너무 힘들엇음 Kafka는 내부 데이터 흐름 개선을 위해서 만들었다 메세지 큐 구조 카프카는 다음과 같은 구조를 가지고있다 [Prod..
jjongguet
'데브원영' 태그의 글 목록