[Kafka] Kafka 데이터 흐름 이해하기: Partition과 Offset
·
Data Engineering/Kafka
이번 글에서는 Kafka의 Partition과 Offset에 대해 공부한 내용을 정리하려고 한다. 본 글의 목차는 다음과 같다.1. Events, Streams, and Topics2. Partition3. Partitioning4. Partition 복제5. Consumer의 데이터 읽기 방식: Pull6. Commit/Offset Events, Streams, and Topics `Partition`에 대해 알아보기 전에, Event, Stream 그리고 Topic에 대해 먼저 알아보자 `Event`는 데이터의 단위이다. 이는 특정 작업이나 상태 변경을 나타낸다.`Stream`은 Kafka에서 연속적으로 흐르는 Event들의 집합이다.`Topic`은 데이터를 구분하기 위한 단위로 events stre..
[Kafka] Apache Kafka 개요
·
Data Engineering/Kafka
이번 글에서는 Apache Kafka에 대해 간단히 소개할 예정이다. 본 글의 목차는 다음과 같다.1. Kafka 등장 배경2. What is Kafka3. Kafka Architecture4. Pub/Sub 모델 1. Kafka 등장 배경 `Kafka`에 대해 알아보기 전, 어떻게 `Kafka`가 등장했는지 알아보자 초기 Linkedin 운영 시에는 단방향 통신을 통해 연동했으며, 아키텍처가 복잡하지 않아 운영에 어려움이 없었다. 하지만, 시간이 지날수록 source, target application의 개수가 많아져 아키텍처가 거대해짐에 따라 데이터를 전송하는 라인이 위 그림과 같이 많이 복잡해졌다. 또한, 한쪽에 장애가 생기면 다른 한 쪽에도 전달되는 문제가 발생해 유지 및 보수가 어려워지면서 관리..
[Spark] Zeppelin으로 SparkSQL 간단히 사용해보기
·
Data Engineering/Spark
이번 글에서는 spark에서 데이터를 불러와 spark sql을 사용해본 것에 대해 작성하려고 한다. 시작하기 앞서 zeppelin을 이용하여 실습을 진행했는데, 이에 대해 먼저 소개를 해야할 것 같다. 목차는 다음과 같다.1. Apache Zeppelin2. HDFS에서 데이터 불러오기3. SQL쿼리 실행4. 마무리 Apache Zeppelin 일단 Zeppelin은 Spark를 통한 데이터 분석의 불편함을 Web 기반의 notebook을 통해 해결해보고자 만들어진 툴이다. 기존의 Spark 환경에서는 명령어를 입력하고 결과를 출력하는 방식으로 작업이 진행되어 쿼리 결과나 분석 과정을 확인하는데 불편함이 있었다. 하지만 Zeppelin은 웹 인터페이스를 통해 이러한 문제를 해결하고 작업을 진행할 수 있..
[Spark] Apache Spark 설치
·
Data Engineering/Spark
이번 글에서는 Apache Spark 설치 과정을 소개할 예정이다. 큰 목차는 다음과 같다.1. 버전 정보2. SSH 설정3. Spark 설치4. 환경 변수 설정5. Apache Spark 클러스터 구성6. Spark 실행7. Spark 종료8. 마무리  버전 정보본 글에서 사용하는 환경은 다음과 같다.OS: Ubuntu 20.04Java: openjdk-11-jdkHadoop: Hadoop 3.4.0Spark: Spark 3.5.1 SSH 설정Spark는 Hadoop과 마찬가지로 노드 간 통신과 협력이 필요하기 때문에 SSH 설정을 필수적으로 해야한다.이미 되어 있다면 skip해도 된다. 먼저, 사용할 모든 노드의 /etc/hosts 파일에 사용할 노드들의 IP와 이름을 지정해준다. $ sudo vim..
[Spark] What is RDD, DataFrame, Dataset?
·
Data Engineering/Spark
이번 글에서는 RDD(Resilient Distributed Dataset), DataFrame, Dataset에 대해 정리하려고 한다. Spark의 가장 큰 강점 중 하나가 데이터 처리 방식을 추상화한 위에 3가지를 제공한다는 점이다. 3가지의 도입 시기는 다음과 같다.RDD: spark 1.0DataFrame: spark 1.3Dataset: spark 1.6 (alpha version)이제 각각이 무엇인지 알아보자 본 글의 목차는 다음과 같다.1. RDD (Resilient Distributed Dataset)     1.1. What is RDD?     1.2. Transformation     1.3. Action     1.4. RDD 특징2. DataFrame     2.1. DataFra..
[Spark] Spark Ecosystem과 Spark Architecture
·
Data Engineering/Spark
이전 글에서 간단히 Apache Spark에 대해 소개하였다.  이번 글에서는 Spark Ecosystem을 구성하는 주요 요소와 각각의 역할을 간단히 정리할 예정이다.또한 Spark Architecture와 실제 작업 흐름이 어떻게 돌아가는지 소개할 예정이다. Spark Ecosystem Spark Ecosystem은 크게 Spark Core, Libraries, Programming interface, Resource Management, Storage로 나뉜다. 각각에 대해 알아보자 Spark CoreSpark Core는 Apache Spark의 중심 컴포넌트로, 모든 추가 기능과 라이브러리들이 이 위에서 동작하며 분산 데이터 처리와 클러스터 자원 관리를 담당한다.특히, RDD(Resilient D..