본문 바로가기

Data Engineering/Spark

(6)
Spark Section5 - Apache Spark Streaming, 실시간 데이터 처리 라이브러리 0. INDEXStreaming(스트리밍) 소개Streaming 예제로 알아보기Structured Streaming(구조화된 스트리밍) 예제로 알아보기Structured Streaming Output Mode(아웃풋 모드)에 대해 자세히 알아보기Streaming Input sources, Processing Model and Trigger settings에 대해 이해하기Streaming Fault Tolerance(결함 감내)에 대해서 알아보기 1. Streaming(스트리밍) 소개 spark streaming은 spark SQL & Dataframe처럼 spark core위에 올라가 있는 라이브러리로, 실시간 데이터를 처리하기 위한 라이브러리이다. 사용하는 데이터 방식에 따라 구 버전인 RDD를 베이스..
Spark Section4 - Apache Spark 엔진 Deep Dive(2) 0. INDEX 스파크 Cache(캐시)에 대해 알아보기 Repartition과 Coalesce에 대해 알아보기 SQL Hint에 대해 알아보기 자료 카운트를 세는 Accumulator에 대해 알아보기 Speculative Execution에 대해 알아보기 Job Scheduling에 대해 알아보기 1. 스파크 Cache(캐시)에 대해 알아보기 cache는 spark 연산 시 추후 같은 데이터에 대해 재연산을 반복하지 않도록 데이터를 메모리에 저장하는 것을 말한다. cache된 데이터는 데이터프레임이 각 워커노드에 파티션 단위로 분산되어 존재하듯 파티션 단위로 캐시공간에 로드되며 executor 내부, task 바깥에 존재한다. 이때 데이터가 executor의 storage 메모리에 들어가기 충분하지 않..
Spark Section3 - Apache Spark 엔진 Deep Dive(1) 0. INDEX Spark Submit 명령어에 대한 이해 RDD와 DataFrame의 API 카테고리에 대해 알아보기 Logical Plan과 Physical Plan에 대해 알아보기 스파크의 Memory Allocation과 Memory Management Adaptive Query Execution(AQE)에 대해서 보다 자세히 알아보기 스파크의 Dynamic Partition Pruning(DPP) 장점 알아보기 (참고 자료) 1. Spark Submit 명령어에 대한 이해 Apache Spark 애플리케이션을 실행하기 위한 명령어로 클러스터 매니저에 제출되어( yarn 환경에서) 이후 spark 로직대로 해당 애플리케이션은 클러스터의 여러 노드에서 병렬로 실행된다. [spark 실행 관련 옵션 ..
Spark Section2 - Apache Spark SQL과 Dataframe(데이터프레임) 0. INDEX 아파치 스파크 SQL과 데이타프레임(Dataframe) 기본 - 이론 Dataframe을 예제로 알아보기 CSV 파일을 Dataframe으로 읽어오기 Dataframe으로 단어 세어보기 Dataframe StructType에 대해 알아보기 Dataframe으로 데이터 총합 구하기 Broadcast(브로드캐스트)의 소개와 브로드캐스트 조인 방법 알아보기 Dataframe Graph 알아보기 Dataframe missing data(빈 데이터)와 date(시간포맷) 다루는 방법 알아보기 Dataframe Join(데이터 병합)하는 모든 방법 1. 아파치 스파크 SQL과 데이타프레임(Dataframe) 기본 Spark SQL은 Apache Spark 모듈 중 테이블과 같은 구조화된 데이터를 다..
Spark Section1 - Apache Spark RDD 특징 및 예제 0. INDEX Spark 환경 구성 word count 예제 Key Value Pair / Average Example 평균값 구하기 예제 Filter와 Min/Max를 이용해 데이터 필터링 및 최대, 최소값 구하기 예제 Map vs Flatmap 차이점 (더 자세한 RDD의 특징은 https://cyoo.tistory.com/26 참조) 1. Spark 환경 구성 1.Local 환경에 도커 설치 후 Spark 환경이 구축된 Jupyter 노트북 이미지를 가져와서 환경을 구축했다. # docker run으로 jupyter 노트북 서버 실행 docker run -it --rm -p 8888:8888 -v C:\Users\Cyoo\study\spark:/home/jovyan/work --user root ..
Spark Section0 - Apache Spark 소개 0. INDEX Apache Spark란? Spark 사용배경 Spark 특징 Spark 동작방식(요약) YARN 런타임 아키텍처 Pyspark 런타임 아키텍처 Spark Component 참고. - RDD, Spark3, Cluster 1. Apache Spark? 클러스터 환경에서 분산처리를 쉽게 구현할 수 있도록 도와주는 툴이다. 데이터 사이언스, 머신러닝과 같이 대용량 데이터 프로세싱에 효과적으로 사용된다. 사용자가 분산처리를 위한 코드를 따로 만들 필요 없이 일반적인 코드를 작성해도 분산 처리가 가능하도록 되어 있다. 2. Spark 사용 배경 1. 하둡 환경에서 기존에 사용하던 데이터 프로세싱 기술인 MapReduce 방식은 데이터 프로세싱 과정에서 가공 결과물들을 데이터에 기록하고 다시 메모..