Data Engineering 42

Kafka CLI 정리

Kafka CLI 정리topic 리스트 확인하기kafka-topics.sh --bootstrap-server 0.0.0.0:9092 --listtopic 생성하기kafka-topics.sh --create --topic --bootstrap-server 0.0.0.0:9092topic 확인하기kafka-topics.sh --describe --topic --bootstrap-server 0.0.0.0:9092topic에서 이벤트 읽기kafka-console-consumer.sh --topic --bootstrap-server 0.0.0.0:9092 --from-beginningtopic에 이벤트 쓰기키 없이 전송kafka-console-producer.sh --topic --bootstrap-se..

Kafka 기본 개념

Kafka 기본 개념주요 기능pub-sub model을 지원하며 분산 메세지 큐이다.기본 적으로 클러스터를 구성한다.Topic을 중심으로 producer라고 하는 publisher, consumer(group)이라고 하는 subscriber로 데이터를 관리하고 처리한다.하나의 Topic은 복수 개의 partition으로 확장 가능하다.Kafka 해결하는 문제단일 메세지 큐가 가지는 scale과 속도 문제를 해결한다.클러스터 구성으로 HA, Fault tolerance를 자체적으로 해결한다.대용량 분산 메세지 처리에서 메세지 저장과 처리의 신뢰를 관리할 수 있는 메커니즘을 구현했다.대용량 데이터를 다루면서도 빠른 데이터 처리가 가능하게 한다.Kafka 서버 및 클라이언트고성능 TCP 네트워크 프로토콜을 통..

Kafka 배경 - Event Driven Architecture

스트리밍 데이터 처리이벤트 스트리밍데이터베이스, 센서 및 모바일 장치와 같은 이벤트 소스에서 발생하는 실시간 데이터를 이벤트 스트림 형태로 캡처하고 저장 및 처리하는 방법ex) 상품 선택, 구매 클릭 등다양한 비즈니스 로직에서 발생하는 이벤트 데이터를 적합한 곳에 실시간으로 전달하는 기술사례은행, 증권 거래소 등에서 실시간으로 결제 및 금융 거래 처리물류 시스템에서 실시간으로 추적 및 모니터링데이터 플랫폼, 이벤트 중심 아키텍처 및 MSA 기반을 제공하기 위해Event Driven Architecture전통적인 Transactional Service 관점에서는 하나의 처리가 모두 완료되어야 상태 확인이 가능하다. 그리고 중간 과정이 많아질수록 실패할 가능성이 높아지고 사용자 경험에 좋지못한 영향을 준다...

[Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(시연 및 추가정보)

Monitoring 시연 정리 2024.02.12 - [Data Engineering/Observability] - [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(실습) [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(실습) 2024.02.12 - [Data Engineering/Observability] - [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(이론) [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(이론) Prome..

[Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(실습)

2024.02.12 - [Data Engineering/Observability] - [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(이론) [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(이론) Prometheus 모니터링을 위한 오픈소스 시스템으로 주로 "Metric" 정보를 수집하기 위한 용도로 사용된다. 다양한 시스템의 상태를 쉽게 확인 및 분석할 수 있다. 특정 rule을 위배하는 트리거가 발생하 cstory-bo.tistory.com 위의 이론내용을 바탕으로 아래와 같은 구조로 프로젝트를 진행해보았다. CentOS VM Server 3대로 구성 Node e..

[Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(이론)

Prometheus 모니터링을 위한 오픈소스 시스템으로 주로 "Metric" 정보를 수집하기 위한 용도로 사용된다. 다양한 시스템의 상태를 쉽게 확인 및 분석할 수 있다. 특정 rule을 위배하는 트리거가 발생하면 경고를 보내 미리 장애를 예방할 수 있다. 장애 예방에 대한 Observability에 대한 내용은 아래 포스팅에서 확인 할 수 있다. 2023.12.29 - [Data Engineering/Observability] - [Observability] - 1. Observability란 & 도구 [Observability] - 1. Observability란 & 도구 좋은 서비스를 만드는 것도 중요하지만 제대로 운영하는 것도 매우 중요하다. 서비스를 정상적으로 운영하기 위해서는 Observabi..

Amazon EMR Hadoop 구축해보기 | MYSQL RDS, EMR 클러스터 생성

MYSQL RDS 여러 Name node(Multi primary)들이 공통으로 저장할 메타데이터를 저장할 곳이 필요하기에 MySQL RDS를 생성한다. 서버 안에서 mysql을 설치하고 사용해도 가능하지만, 서버가 고장나면 접근이 안된다는 문제가 있다. amazon RDS로 서버와 데이터베이스 서버를 분리하여 안정적이면서 확장성, 보안이 좋고 편리하다는 장점을 가질 수 있다. 데이터베이스 생성한다. 많은 데이터가 들어가지 않기때문에 프리티어로 선택했으며(t3.micro) 연결 > 퍼블릭 엑세스를 허용해준다. mysql -u 마스터사용자이름 -h endpoint주소 -P 3306 -p 패스워드 위의 커맨드로 mysql에 접근하고 hive용 데이터베이스를 생성한다. create database hive; ..

HDFS 명령어 모음

HDFS 명령어 모음 대부분 리눅스 command와 비슷해서 큰 설명없이도 이해가 쉬웠다. Dir, File 조회 ls hdfs dfs -ls / 파일 출력 lsr hdfs dfs -lsr / 하위 디렉토리 포함하여 파일 출력 du hdfs dfs -du -h / 파일 용량을 확인, h는 사람이 보기 편하게 만들어주는 것이다. hdfs dfs -du -h -s / s 를 붙이면 summary 용량을 확인할 수 있다. cat hdfs dfs -cat filename 파일 내용 출력 text hdfs dfs -text filename 파일 내용 출력하며 압축된 형태도 가능 mkdir hdfs dfs -mkdir dirname dir 생성 head, tail hdfs dfs -head filename hdfs..

Hadoop의 Fair Call Queue

Fair Call Queue Client의 요청을 담아놓는 Queue이다. heavy한 클라이언트로 인해 전체 요청의 처리가 늦어지지 않도록 하기 위해 만들어졌다. 이전 방식 FIFO Queue Fair call queue가 도입되기 전에는 FIFO방식의 큐를 사용하였다. 하지만 이러한 방식은 heavy user로 인해 전체 응답 속도를 느리게 만들었다. 그리고 high load를 발생시키면 전체 시스템에 과부하가 걸려 분산 서비스에 대한 공격이 가능하기에 DDoS방식으로 공격이 가능하다. Fair Call Queue 구성 multi-level queue가 multiplxer와 scheduler로 연결되어있다. RPC Scheduler Listen queue에 RPC요청이 도착하면 reader threa..

Hadoop RAID, Eraser Coding

Data Fault Tolerance 하둡은 fault tolerance를 위해 SW로 복제본을 만들고 다른 머신, 다른 렉, 다른 데이터 센터로 분산 시킨다. HW로는 RAID 구성을 두어 fault tolerance를 더욱 높인다. RAID RAID는 Redundant Array of Inexpensive Disks를 말한다. 하드 디스크를 여러 개 독립적인 드라이브의 배열로 가상화하는 방식이다. 이를 통해 performance 뿐만 아니라 capacity, reliability를 개선할 수 있다. RAID 0 RAID 0은 데이터를 블럭단위로 나누고 전체 데이터 영역에 array로 분포하도록 나누는 방식이다. Drive 개수 만큼 동시에 read, write가 가능하여 속도가 빠르다. storage..