분류 전체보기
-
[Hadoop] Secondary NameNode 알아보기Hadoop 2024. 1. 30. 08:08
- 목차 들어가며. 이번 글에서는 Secondary NameNode 에 대해서 알아보는 시간을 가지겠습니다. Hadoop 은 크게 NameNode 와 DataNode 로 구성됩니다. 하나의 파일을 Hadoop 에 저장하게 되면, 파일은 여러 블록들로 나뉘어져 저장됩니다. 이러한 나누어진 블록들은 분산된 DataNode 들에 저장됩니다. 하나의 온전한 파일이 여러 Block 들로 분리되고, 분리된 Block 들은 분산된 DataNode 로 저장됩니다. 이 상황에서 NameNode 는 분산된 Block 들이 어떤 DataNode 에 저장되어 있는지, 파일과 블록의 크기는 어떤지에 대한 메타데이터를 관리하게 됩니다. 그래서 클라이어트가 어떤 파일을 요청하게 되면 NameNode 는 파일의 블록들의 위치 정보를..
-
[RabbitMQ] Exchange 알아보기RabbitMQ 2024. 1. 28. 12:24
- 목차 들어가며.이번 글에서는 RabbitMQ 의 구성요소인 Exchange 에 대해서 알아보려고 합니다.Exchange 는 RabbitMQ Publisher 가 메시지를 전달할 때에 메시지를 적절한 Queue 로 라우팅하는 역할을 담당합니다.우선 RabbitMQ 와 Client 사이의 관계를 간단하게 살펴보도록 하겠습니다.아래 이미지를 보시면 Publisher 와 Broker 사이의 관계가 표현됩니다.Publisher 는 메시지를 RabbitMQ Broker 에게 전달합니다.메지시가 RabbitMQ Broker 로 전달되면, 이제 RabbitMQ Broker 의 내부를 살펴봐야합니다. Broker 내부에는 Message Delivery 를 위한 구성요소인 Exchange, Queue 가 존재합니다..
-
[Spark] Logical Plan 알아보기 1 (Catalyst Optimizer)Spark 2024. 1. 28. 10:32
- 목차 들어가며. 이번 글에서는 SparkSQL API 로 구성된 SQL 쿼리와 DataFrame 의 Transformation 들이 어떠한 방식으로 최적화되는지를 살펴보려고 합니다. SparkSQL API 로 구성한 일련의 코드들은 Action 에 의해서 실행이 될때에 아래와 같은 단계를 거쳐 최적화됩니다. 이 과정에서 큰 역할을 수행하는 구성요소가 바로 Catalyst Optimizer 이구요. Unresolved Logical Plan 부터 Physical Plans 를 생성하는 과정에 관여합니다. 이번 글에서는 Logical Plan 과 관련된 용어들과 최적화 과정에 대해서 이야기해보려고 합니다. JSON, Parquet 파일 생성하기. 먼저 Data Source 로 사용할 JSON, Parqu..
-
[Spark] JDBC DataFrameReader 알아보기 (MySQL)Spark 2024. 1. 28. 07:39
- 목차 들어가며. JDBC Connector 를 활용한 DataFrameReader 에 대한 글을 작성하려고 합니다. Docker 로 MySQL 실행하기. 먼저 Docker 를 활용하여 MySQL 컨테이너를 실행해보도록 하겠습니다. 간단한 실행만으로 실습에 필요한 데이터를 생성할 수 있도록 Command 위주로 작성하겠습니다. Docker Run MySQL. docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0 Docker Exec MySQL Container. docker exec -it mysql sh Create Table. mysql -uroot -p1234; use mysql; create table user..
-
[Spark] S3 DataFrameReader 구현하기 (s3a)Spark 2024. 1. 28. 07:39
- 목차 Hadoop-AWS module. Spark 에서 S3 Object 들을 읽어들이기 위해서 s3a 프로토콜을 사용해야합니다. s3a 는 BigData Processing Workload 를 처리하기 위해서 개발된 S3 의 새로운 기능이구요. BigData Processing Workload 라 함은 분산저장된 여러 Blocks 들을 효율적으로 조회하고 처리함을 뜻합니다. s3a 은 S3 의 Object File 들을 Hadoop 의 분산 저장된 여러 Block 들을 조회하는 것과 같이 효율적인 Object 조회를 돕는 프로토콜 또는 파일시스템이구요. 아래 이미지와 같이 여러 Object 들을 병렬/동시적으로 조회하여 데이터를 처리할 수 있습니다. Hadoop-AWS 모듈은 s3a 를 처리하기 위..
-
[Spark] groupBy, RelationalGroupedDataset 알아보기Spark 2024. 1. 26. 23:30
- 목차 들어가며. 이번 글에서는 SparkSQL 의 Group By Transformation 에 대해서 상세히 알아보려고 합니다. 사용할 데이터는 Kaggle 의 Bank Customer Chunk Prediction 데이터를 사용하며, Dataset 의 다운로드 링크는 아래와 같습니다. https://www.kaggle.com/datasets/shubhammeshram579/bank-customer-churn-prediction Bank Customer Churn Prediction Predicting customer churn in banking industry using machine learning. www.kaggle.com 데이터 살펴보기. 이번에 다루어 볼 데이터셋은 은행 이탈 고객에 대..
-
[Spark] Union 알아보기Spark 2024. 1. 26. 23:30
- 목차 들어가며.Union Transformation 은 두개 이상의 DataFrame 을 하나로 합칩니다.DataFrame 을 합친다는 관점에서 Union 은 Join Transformation 과 유사합니다.하지만 Join Transformation 과의 차이점은 Row 기반으로 Combining 을 수행하는지 , Colum 기반으로 수행하는지에 대한 차이가 있습니다. Union Transformation 의 중요한 점은 Row 관점에서의 Dataset 변형이라는 점입니다.일반적으로 데이터의 변형은 Schema 가 변경된다던지, Data 의 value 의 Update 등의 뜻합니다.Union 은 데이터 그 자체의 변형은 없지만, Dataset 관점에서 바라볼 때, Dataset 의..
-
[Flink] Stateless Transform Operator 알아보기 (Map, Filter, FlatMap)Flink 2024. 1. 25. 21:07
- 목차 들어가며. 이번 글에서는 Flink DataStream API 의 기본적인 Stateless Operator 들에 대해서 알아보려고 합니다. 살펴볼 대상은 Map, Filter, Flatmap Operator 입니다. 먼저 Stateless Operator 에 대해서 간단히 알아보도록 하겠습니다. Stateless Operator. Stream Processing Application 영역에서 Stateful 과 Stateless 라는 두가지 처리 기법이 존재합니다. Stateless 는 Event-by-Event 형태로 데이터를 처리하는 일반적으로 기법을 의미합니다. 즉, 단일 Event 하나를 처리하는데에만 집중합니다. 다른 표현으로는 과거의 상태가 현재의 Event 처리에 영향을 주지 않습..
-
Jackson 으로 JSON 다루기Language/Java 2024. 1. 22. 06:22
- 목차 들어가며. Jackson 은 JSON 데이터를 Serialization/Deserialization 하는 대표적인 자바 라이브러리입니다. 특히 JSON 과 POJO 사이의 변환을 손쉽게 할 수 있도록 여러 기능을 제공합니다. 이번 글에서는 여러 사례와 실습을 통해서 Jackson 을 활용한 Parsing 방법에 대해서 알아보도록 하겠습니다. JDK & Jackson Compatibility. 아래 URL 은 Jackson 의 Release 노트의 사이트의 주소입니다. https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.14 Jackson Release 2.14 Main Portal page for the Jackson project. Con..
-
[Kafka Producer] Data Loss 는 언제 발생할까 ?Kafka 2024. 1. 21. 07:30
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/474 Docker 로 Kafka Cluster 구축해보기. - 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-compose 를 활용하여 Kafka, ZooKeeper 클러스터를 구축하는 내용을 작성하려고 합니다. docker-com westlife0615.tistory.com 들어가며. 카프카 프로듀서는 비즈니스의 요구사항에 따라서 Data Loss 를 허용할 것인지, Data Duplication 을 허용할 것인지를 결정해야합니다. Data Loss 를 허용하는 경우에는 서비스에서 데이터의 활용하는 속도를 늘리고, 시간을 감축시킬 수 있습니다. 웹사이트..