스칼라 공부 자료
·
DATA Engineering/Scala
교재 : 러닝스칼라 깃허브 : https://github.com/Jpub/LearningScala GitHub - Jpub/LearningScala: 리포지토리 리포지토리. Contribute to Jpub/LearningScala development by creating an account on GitHub. github.com 유데미 : https://www.udemy.com/course/best-scala/ 【한글자막】 스파크 스트리밍과 Scala 로 빅 데이터 스트리밍하기 (실전편) 실시간으로 구조화된 스파크 스트리밍, 카프카 통합 및 실시간 스트리밍 빅 데이터를 다루는 스파크 스트리밍 튜토리얼 www.udemy.com 러닝스칼라 먼저떼고 스칼라스파크 하는걸 목표로 진행
데보션 테크세미나 : 데이터 플랫폼 구현 사례 (22.07.29)
·
DATA Engineering
데보션 테크세미나 : 데이터 플랫폼 구현 사례 (22.07.29) 0. Intro SK DEVOCEAN 에서 ‘데이터 플랫폼 구현 사례' 발표를 들으며, 따로 메모해둘만한 내용들을 기록했습니다. 원본 링크는 https://devocean.sk.com/vlog/view.do?id=331&vcode=A03 이며 페이스북 링크는 https://www.facebook.com/groups/devocean 입니다 1. Data -1. DataLake vs DataWarehouse DataLake 는 ‘찐 raw 데이터' 진짜 실제 가공하지 않은 쌩 데이터들이 모여있는것 가공하지않고, 전체데이터라는것이 특징 DataWarehouse는 DataLake에서 ‘이건 좀 가공해서 써야겠다' 싶은 데이터들을 빼둔것 가공했기때..
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, 모니터링 도구) 기능을 제공 오픈소스 카프카를 직접 설치시..
에러해결 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로 설정해서 실행 브로커 역할 컨트롤러 카프카 클러스터의 다수브로커 중 한대가 컨트롤러 역할을한다. 컨트롤러는 다른브로커들의 상태를 체크하고, 브로커가 클러스터에서 빠지면..
jjongguet
'DATA Engineering' 카테고리의 글 목록 (3 Page)