목록분류 전체보기 (370)
터칭 데이터
Intro 기타기능 Intro와 Broadcast Variable Accumulators Speculative Execution Resource Dynamic Allocation Spark Scheduler Driver Executor Memory Driver Executor OOM JVM Python Cache & Presist

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. 기타 기능/개념 살펴보기 2. Driver와 Executor 해부 3. 메모리 이슈 정리 4. JVM과 Python 간의 통신 5. Caching과 Persist 6. Dynamic Partition Pruning Caching과 Persist 어느 데이터시스템이건 반복되어서 사용되는 데이터가 있다면 메모리에 두는 것이 좋은데 Spark에서 사용법에 대해 알아보자 Caching 1. Caching이란 무엇이며 왜 caching이 필요한가? 2. 어떻게 DataFrame을 caching하는가? 3. 언제 caching하고 언제 하지 말아야 하는가? 4. Caching을 취소하는 방..

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. 기타 기능/개념 살펴보기 2. Driver와 Executor 해부 3. 메모리 이슈 정리 4. JVM과 Python 간의 통신 5. Caching과 Persist 6. Dynamic Partition Pruning JVM과 Python 간의 통신 JVM과 Python 프로세스들간의 통신에 대해서 알아보자 PySpark Driver Python 프로세스 + JVM 프로세스 PySpark Memory (1) Spark은 JVM Application이지만 PySpark은 Python 프로세스 ● JVM에서 바로 동작하지 못함 따라서 JVM 메모리를 사용할 수 없음 spark.execu..

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. 기타 기능/개념 살펴보기 2. Driver와 Executor 해부 3. 메모리 이슈 정리 4. JVM과 Python 간의 통신 5. Caching과 Persist 6. Dynamic Partition Pruning 메모리 이슈 정리 Driver와 Executor에서 발생가능한 메모리 이슈들을 정리해보자 Spark 메모리 이슈 (OOM) ❖ Driver OOM ❖ Executor OOM Driver OOM 케이스들 큰 데이터셋에 collect 실행 큰 데이터셋을 Broadcast JOIN Python이나 R 등으로 작성된 코드 너무 많은 태스크들 Executor OOM 케이스들 너..

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. 기타 기능/개념 살펴보기 2. Driver와 Executor 해부 3. 메모리 이슈 정리 4. JVM과 Python 간의 통신 5. Caching과 Persist 6. Dynamic Partition Pruning Driver와 Executor 해부 Driver와 Executor의 리소스 사용에 대해 알아보자 Driver의 역할 Spark Application = (1 Driver) + (1+ Executor) Driver는 다음 역할을 수행 ● main 함수 실행하고 SparkSession/SparkContext를 생성 ● 코드를 태스크로 변환하여 DAG 생성 ● 이를 exec..
Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. Spark 기타 기능과 메모리 관리 2. Spark Shuffling 최적화 3. Spark Partition 학습 4. Spark ML 소개와 ML 모델 빌딩 5. ML Pipeline과 Tuning 소개와 실습 기타 기능/개념 살펴보기 자주 필요하지는 않지만 알아두면 좋은 기능들을 살펴보자 Spark Scheduler란? 하나의 Spark Application내의 잡들에 리소스를 나눠주는 정책 ● Spark Application들간에 리소스를 나눠주는 방식은 리소스 매니저에게 달려있음 다음 2 가지가 존재 ● “FIFO” (기본) ▪ 리소스를 처음 요청한 Job에게 리소스 우..

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. Spark 기타 기능과 메모리 관리 2. Spark Shuffling 최적화 3. Spark Partition 학습 4. Spark ML 소개와 ML 모델 빌딩 5. ML Pipeline과 Tuning 소개와 실습 기타 기능/개념 살펴보기 자주 필요하지는 않지만 알아두면 좋은 기능들을 살펴보자 Spark의 리소스 할당 (스케줄링) Spark Application들간의 리소스 할당 ● 기반이 되는 리소스 매니저가 결정 ▪ YARN은 세 가지 방식 지원: FIFO, FAIR, CAPACITY ● 한번 리소스를 할당받으면 해당 리소스를 끝까지 들고 가는 것이 기본 하나의 Spark A..

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. Spark 기타 기능과 메모리 관리 2. Spark Shuffling 최적화 3. Spark Partition 학습 4. Spark ML 소개와 ML 모델 빌딩 5. ML Pipeline과 Tuning 소개와 실습 기타 기능/개념 살펴보기 자주 필요하지는 않지만 알아두면 좋은 기능들을 살펴보자 Speculative Execution란? 느린 태스크를 다른 Worker node에 있는 Executor에서 중복 실행 ● 이를 통해 Worker node의 하드웨어 이슈등으로 느려지는 경우 빠른 실행을 보장 ● 하지만 Data Skew로 인해 오래 걸린다면 도움이 안되고 리소스만 낭비하..

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. Spark 기타 기능과 메모리 관리 2. Spark Shuffling 최적화 3. Spark Partition 학습 4. Spark ML 소개와 ML 모델 빌딩 5. ML Pipeline과 Tuning 소개와 실습 기타 기능/개념 살펴보기 자주 필요하지는 않지만 알아두면 좋은 기능들을 살펴보자 Accumulators란? 특정 이벤트의 수를 기록하는데 사용됨 -> 일종의 전역 변수 ● 하둡에서 카운터와 아주 흡사 예를 들면 비정상적인 값을 갖는 레코드의 수를 세는데 사용 Accumulators의 특징 변경 가능한 전역변수로 드라이버에 위치 스칼라로 만들면 이름을 줄 수 있지만 그 ..

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. Spark 기타 기능과 메모리 관리 2. Spark Shuffling 최적화 3. Spark Partition 학습 4. Spark ML 소개와 ML 모델 빌딩 5. ML Pipeline과 Tuning 소개와 실습 기타 기능/개념 살펴보기 자주 필요하지는 않지만 알아두면 좋은 기능들을 살펴보자 살펴볼 기능과 개념 Broadcast Variable Accumulators Speculative Execution Scheduler Dynamic Resource Allocation Broadcast Variable이란 무엇인가? 룩업 테이블등을 브로드캐스팅하여 셔플링을 막는 방식으로 사..