챕터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, 모니터링 도구) 기능을 제공 오픈소스 카프카를 직접 설치시..
에러해결 kafka : Configured zookeeper. connect may be wrong.
·
DATA Engineering/Kafka
문제상황 카프카를 껏다가 다시 켜야 하는 상황이었다. 주키퍼를 먼저 켠 다음 → 카프카 서버를 켜야 하므로 우선 주키퍼를 켰다 bin/zookeeper-server-start.sh config/zookeeper.properties 잘 켜진것을 확인했다. 카프카 서버를 를 킨다 bin/kafka-server-start.sh config/server.properties 에러메세지 : Configured zookeeper.connect may be wrong 해결방안 : config/server.properties 의 log.dirs 위치의 meta.properties 삭제 meta.properties 를 제거해주고 다시 실행한다 결과 해결
zero-copy 대신에 io_uring
·
DATA Engineering/Kafka
Kakfa는 zero-copy 때문에 빠른거 아니였어? 맞다. 근데 이게 속도차이가 엄청 막 별게 아닌것같더라. 그래서 이게 장점인데 막 엄청 장점은 아니라고한다. io_uring 비동기 IO 처리를 위한 리눅스 커널 시스템 콜 인터페이스 라고 보면된다 (read(), write(), send()같은거…) 근데 이걸 잘 써먹고있는게 Netty다 Netty = 프레임 워크 https://netty.io/ 공식적인 설명은 “Netty는 유지 관리 가능한 고성능 프로토콜 서버 및 클라이언트의 신속한 개발을 위한 비동기 이벤트 기반 네트워크 애플리케이션 프레임워크 입니다.” 라고 나와있다 적은 레이턴시, 적은 메모리 소모, 최소화된 불필요한 메모리 복사를 장점으로 뽑고있다 비동기 처리 Netty는 비동기 처리를..
Zero-Copy는 왜 빠를까? (Kafka)
·
DATA Engineering/Kafka
선요약 Kafka는 일반적인 copy 가 아니라 zero-copy를 사용해서 속도가 빠르다 zero-copy는 데이터를 네트워크로 전송할때 생기는 Kernel-Application단에서 생기는 버퍼과정과 복사본 수를 줄이는 기법을 사용했다 NIC버퍼가 Socket버퍼를 거치지않고, Read버퍼에 DMA(직접메모리접근)엔진으로부터 Read버퍼의 내용을 가지는 Descriptor를 가짐으로써 데이터를 읽게된다 zero-copy 과정에서 생기는 버퍼복사는 단 2회 Read(), Send() 등의 시스템 콜에 의해 바뀌는 context-switching(유저모드,커널모드) 에 대한 오버헤드를 줄이고, DMA엔진의 용량보다 데이터양이 더 클때 생기는 미리읽기 성능저하를 방지할수 있음 (기존 copy, 향상된 co..
섹션 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
'DATA Engineering/Kafka' 카테고리의 글 목록 (2 Page)