목록Spark (5)
엔지니어 블로그
PartitionSpark는 작업할 때 RDD 혹은 DataFrame,DataSet을 사용하게 된다. 내부에서는 Partition이라는 최소 단위로 구성되어있다. 이 Partition 때문에 서로 다른 노드에서 분산 처리가 가능한 것이다.Partition은 리소스와도 깊은 연관이 있다. 우선 Spark에서 최소 연산 단위를 taks라고 하는데, 1 task 는 1 Partition을 처리한다. 또 1 Task는 1 Core가 처리하게 된다. 즉 1 task = 1 core = 1 partition 이라고 보면 된다. 이처럼 Partition의 수는 작업에 할당 할 core의 수를 결정한다. 또 개별 Partition의 크기는 core당 필요한 메모리 사이즈를 결정하게 된다. Partition의 수가 적다..

1. RDD란?RDD는 Resilient Distributed Dataset의 약자로 탄력적인 분산 데이터셋이라는 의미다. 데이터를 클러스터 내에 분산 저장하고, 하나의 파일처럼 읽고 쓰는 것이 가능하다. 물리적으로 분산저장 되는 것이 아닌, 내부에 Logical Partition이 있고 해당 파티션 기준으로 물리적 노드에서 나누어 처리가 가능하다.RDD는 불변하는 특징을 가지고있다. RDD에 작업을 하게 되면 하나 혹은 다수의 RDD를 결과 값으로 받게 된다. 즉, 작업한 RDD는 변함없이 존재하고 작업이 반영된 새로운 RDD만 생성되는 것이다.2. Transformation / ActionRDD로 수행하는 동작은 Transformation / Action 으로 나누어 볼 수 있다. 먼저 Transfo..

파케이는 데이터 엔지니어링을 하다보면 굉장히 자주 접하는 포맷이다. ㅇ케이는 데이터 엔지니어링을 하다보면 굉장히 자주 접하는 포맷이다. 무엇인지는 알고있지만 정확히 알고 넘어가기 위해 따로 공부를 진행했다.Parquet란?파케이는 아파치에서 관리하는 오픈 소스 데이터 파일 형식이다. 자세히 알기 위해 공식문서의 내용을 참고했다.Apache Parquet is an open source, column-oriented data file format designed for efficient data storage and retrieval. It provides high performance compression and encoding schemes to handle complex data in bulk and..

1. Spark의 기본적인 아키텍처Spark은 기본적으로 3 부분으로 나누어 볼 수 있다.1.Driver2.Cluster Manager3.Executor1.DriverDirver는 Spark Application을 실행하는 역할이다. main 함수를 실행하고 SparkContext 객체를 생성하게 된다.2.Cluster ManagerDriver로 부터 실행계획을 전달 받아 필요한 만큼의 Worker를 생성하게 된다. YARN,K8S가 사용되며 Worker의 failover도 담당하게 된다.3. Executor다수의 Worker 노드에서 실행되는 프로세스로 Spark Driver가 할당한 작업을 수행하여 결과를 반환한다.2. Spark 작동 과정 1.Spark SumitDriver에게 작업 내용 전달 2...

1.Spark란 무엇인가Spark는 Data Engineering, Science, ML 등의 작업을 수행할 수 있는 Muilti-Language 엔진/프레임워크다. 단일 노드 및 cluster 형태로 대량의 컴퓨팅 자원을 사용할 수 있고, 대량의 데이터에 대해 분산퇸 컴퓨팅 처리를 신뢰성 있게 처리할 수 있다.2.Spark 주요 기능Batch/Streaming단일 모델과 프레임워크로 Batch,Streaming을 통합 개발 할 수 있다.SQL AnalyticsANSI SQL로 빠른 분산 처리 결과를 얻을 수 있다. 기존의 DW 솔루션보다 빠르게 결과를 얻을 수 있다.Data Sciencepetabyte-scale 데이터에 대해 Downsampling 없이도 EDA가 가능하다MLML 알고리즘 학습이 가능..