CDC 아키텍쳐를 이루는 debezium, kafka connect
·
DATA Engineering/Kafka
INTRO 해당 게시글은 Udemy의 Change Data Capture(CDC) using Debezium for MySQL 섹션 1을 보고 정리한 내용입니다. 내용상 오류가 있을수 있습니다. 댓글로 남겨주시면 확인 후 수정하겠습니다. 감사합니다! Debezium이 생기게 된 배경 기존 RDB&NOsql(MySQL, MongoDB, Cassandra…) → (Capture) ⇒ Big data System (e.g. HDFS…) Debezium의 특징 1. 이벤트 기반 으로 작동한다 2. 다양한 데이터기반 환경을 하나로 합칠수 있다 3. DB의 상태 혹은 진행사항을 지속적으로 모니터링하는것을 보장한다 4. Apache Kafka기반으로 만들어진거라 빠르다 Kafka Connect 컨셉 데이터 스트리밍을..
스칼라에서 => 연산
·
DATA Engineering/Scala
1. 스칼라에서 => 와 = 의 차이 => 는 기본적으로 매개변수와 함수본문을 구분하는 역할이다. 그래서 아래의 예제가 있을때 val add = (x: Int, y: Int) => x + y 매개변수는 (x: Int, y: Int) 라고 정의하고 함수본문은 x+y 라는것을 정의한것이다. 이때 주의할점은 함수임에도 불구하고, val 자료형으로 선언되었다는 것이며, 이를 익명함수라고 하여 함수를 변수의 인자로 넣을수 있는것이라고 생각하면 편하다.(파이썬에서의 람다함수와 비슷하다) 반면, 일반적인 상황에서는 = 기호를 사용한다 def add(x: Int, y: Int): Int = x+y = 는 메소드의 반환값을 지정하는 기호로 사용되었다. 일반적인 대입연산과 똑같다. 2. 고차함수와 매개변수 => 기호를 통..
Mac에서 Scala 설치하기
·
DATA Engineering/Scala
1. brew로 Scala 를 설치합니다. brew install scala scala -version 2 z쉘에서 scala 를 등록해줍니다 #scala 가 설치된 위치를 먼저 확인 brew info scala
에러해결 : strimzi로 띄운 카프카 클러스터가 READY 가 안될때
·
DATA Engineering/Kafka
1. 증상 strimzi로 띄운 kafka cluster가 READY 상태로 안바뀌는것을 확인 2. 원인확인 원인확인을 위해서 describe를 확인했다 minikube kubectl -- describe kafka 원인은 현재 yaml파일에서 지정된 카프카의 버전은 3.4.0 인데, 현재 strimzi에서 지원되는 카프카 버전은 [3.2.0, 3.2.1, 3.2.3, 3.3.1] 이였던 것이다. 3. 해결방법 버전을 맞춰준다. 문제가 있는 카프카 클러스터를 제거 minikube kubectl -- delete -f cluster.yaml 카프카 버전을 바꿔준다 (기존 3.4.0 → 3.2.0 ) 재배포 하여 업데이트 시켜준다 minikube kubectl -- apply -f cluster.yaml 결..
Strimzi 로 Kafka Cluster 구축하기
·
DATA Engineering/Kafka
0. INTRO K8s환경(Minikube)을 대상으로 진행 HelmChart 를 사용한 Strimzi Opeator 사용 Kafka Cluster를 구축 1. Minikube 실행 minikube 실행 minikube start 2. Helm 설치 Helm 설치페이지에 접근 https://helm.sh/ko/docs/intro/install/ 해당 페이지에서 원하는 방식으로 설치 내가 추천하는 방식은 스크립트 기반의 설치 helm 설치되어있는지 확인 : helm 헬름 설치 이후 alias 설정(zsh쉘 기준) 설정파일 접근 : vi ~.zshrc alias h=’helm’ 입력 설정파일 저장 : source ~/.zshrc 3. 쿠버네티스 버전확인 버전확인하는 명령어 : kubectl version S..
카프카 토픽 생성, 프로듀서, 메세지, 삭제 명령어
·
DATA Engineering/Kafka
브로커 서버는 “server-01, server-02, server-03” 으로 지정 토픽 이름은 “test” 로 지정 콘솔에서 진행 #토픽 만들기 bin/kafka-topics.sh \ --bootstrap-server server-01:9092, server-02:9092, server-03:9092 \ --replication-factor 2 --partitions 3 \ --topic test --create #프로듀서로 토픽에 메세지보내기 bin/kafka-console-producer.sh \ --bootstrap-server server-01:9092, server-02:9092, server-03:9092 \ --topic test #컨슈머로 보낸메세지를 확인하기 bin/kafka-cons..
Kafka 토픽 생성, 콘솔 프로듀서, 콘솔 컨슈머, 컨슈머그룹 명령어
·
DATA Engineering/Kafka
kafka-topics.sh #만들겠다. 브로커서버는 kafka1이고. 복제본갯수는 3이며. 파티션갯수는 1개다. 토픽이름은 test-topic02다 --create --bootstrap-server kafka1:9092 --replication-factor 3 --partitions 1 --topic test-topic02 #지우겠다. 브로커서버는 kafka1이고. 토픽이름은 test-topic02다 --delete --bootstrap-server kafka1:9092 --topic test-topic02 #확인하겠다. 브로커서버는 kafka1이고. 토픽이름은 test-topic02다 --bootstrap-server kafka1:9092 --topic test-topic02 --describe #만..
Kafka에서 서버연결해서 메세지보내기
·
DATA Engineering/Kafka
이전 게시글 ‘AWS EC2에 Kafka 설치하기’의 다음 내용입니다. 서버1에서 서버2의 토픽을 만듭니다 /usr/local/kafka/bin/kafka-topics.sh \ --create \ --bootstrap-server kafka2:2181 \ --topic jjongguet2 서버2에서 console-consumer를 열어서 토픽을 받아들일 준비를 합니다 /usr/local/kafka/bin/kafka-console-consumer.sh \ --bootstrap-server kafka2:9092 \ --topic jjongguet2 이전에 존재하는 메세지가 존재한다면 --from-beginning 옵션을 써서 이전 데이터를 먼저 가져와도 무방합니다 서버1에서 console-producer를 ..
AWS EC2에 Kafka 설치 및 구축하기
·
DATA Engineering/Kafka
서버 구성 Amazon Linux 2 : Kernel 54.10, 64비트 인스턴스 : t2.medium 키페어 이름 : keypair (pem형식) Storage 1 x 50GB(GiB) 보안그룹이름 : peter-sg-kafka 유형 프로토콜 포트범위 소스 모든트래픽 모두 0-65535(전체) 사용자지정(Custom) 172.31.0.0/16 모든 TCP TCP 0-65535(전체) 내 IP(My IP) Server public private 연결 kafka1 3.83.193.229 172.31.84.60 ssh -i keypair.pem ec2-user@{public} kafka2 54.237.164.107 172.31.80.29 키페어 sudo chmod 600 keypair.pem 주의)루트유저..
Scalog 설명. 간단한 요약.
·
DATA Engineering/Kafka
주의 이 리뷰는 매우 낮은 수준에서 진행한 리뷰입니다. 가볍게 읽기를 권장하며, 관심있으신분들은 원본 자료를 찾아보시기를 권장합니다 *Scalog 논문 : https://www.usenix.org/conference/nsdi20/presentation/ding *발표영상 링크 : https://www.youtube.com/watch?v=pfpjKNZA-d4 NSDI '20 - Scalog: Seamless Reconfiguration and Total Order in a Scalable Shared Log Key point total order shared log → 분산환경에서도 로그가 안꼬여야하고 unusally scalable → 확장 가능성을 항상 염두해둬야하고 only totally shared..
jjongguet
'DATA Engineering' 카테고리의 글 목록