# apache spark

35개의 포스트
post-thumbnail

Amazon EMR의 기능을 알아보자

Amazon EMR을 사용하면 빅 데이터 환경 및 애플리케이션을 간단하게 구축하고 운영할 수 있습니다. 관련 EMR 기능을 통해 클러스터 및 협업 개발을 위한 EMR Studio를 쉽게 프로비저닝하고 관리형으로 확장하고 재구성할 수 있습니다.몇 분 내에 EMR 클러스터

2022년 2월 9일
·
0개의 댓글

Ubuntu 20.04 Apache Spark & Zeppelin 설치하기

Ubuntu 20.04 LTS 환경

2022년 2월 8일
·
0개의 댓글
post-thumbnail

[Apache Spark] 아파치 스파크의 메모리 관리에 대해서

Spark를 사용하다보면 메모리 관련해서 문제가 발생되는 경우가 많습니다. 최근 연구하는데 있어서 Apach Spark의 Structured Streaming(https://spark.apache.org/docs/latest/structured-streamin

2022년 1월 24일
·
0개의 댓글
post-thumbnail

[Apache Spark] Spark SQL의 카탈리스트 옵티마이저

사용하는 데이터 포맷이 parquet이고, SQL만으로 처리할 수 있는 경우 schema에 매핑되는 클래스를 정의할 필요가 없다. Spark SQL에서는 Catalyst Optimizer가 최적화를 대신해준다. DataFrame은 Untyped Data인 Row를 사용

2021년 12월 10일
·
0개의 댓글
post-thumbnail

[Apache Spark] 스파크 스케줄러

스파크 애플리케이션은 여러 잡을 실행시켜 원하는 바를 달성한다.스파크 잡은 태스크라고 하는 더 작은 실행 단위로 나뉜다.이 태스크는 여러 익스큐터에게 작업 실행을 요청함으로써 병렬 처리가 가능하다.태스크가 종료되면 결과를 받고 다른 태스크를 실행 요청하며, 잡의 모든

2021년 12월 10일
·
0개의 댓글

[Apache Spark] 에코시스템

저수준 API(특히 RDD)를 사용하는 경우 유연성을 얻는 대신 성능 저하를 감수해야 한다.파이썬 데이터를 스파크와 JVM에서 이해할 수 있도록 변환하고 그 반대로 변환하는 과정에서 큰 비용이 발생하기 때문이다. 이 과정에는 데이터 직렬화 처리 과정과 함수 처리 과정이

2021년 12월 10일
·
0개의 댓글

[Apache Spark] 성능 튜닝

잡의 실행 속도를 높이기 위한 성능 튜닝 방법을 알아보자!간접적인 성능 향상 → 전체 스파크 애플리케이션이나 스파크 잡에 영향을 미치게 된다. 직접적인 성능 향상 → 개별 스파크 잡, 스테이지, 태스크, 코드 등 특정 영역에만 영향을 주므로 전체 스파크 애플리케이

2021년 12월 10일
·
0개의 댓글
post-thumbnail

[Apache Spark] 모니터링과 디버깅

스파크 애플리케이션과 잡클러스터에서 애플리케이션이 실행되는 상황을 파악하거나 디버깅하려면 스파크 UI와 스파크 로그를 확인해야 한다.스파크 UI와 스파크 로그는 RDD와 쿼리 실행 계확과 같은 개념적 수준의 정보를 제공한다.JVM스파크는 모든 익스큐터를 개별 JVM에서

2021년 12월 10일
·
0개의 댓글

[Apache Spark] 스파크 배포 환경

장점자체 데이터센터를 운영하는 조직에 적합하다.사용 중인 하드웨어를 완전히 제어할 수 있으므로 특정 워크로드의 성능을 최적화할 수 있다.여러 종류의 저장소를 선택할 수 있다.단점설치형 클러스터의 크기가 제한적이다. (너무 작거나 너무 클 수 있음)하둡 파일 시스템(HD

2021년 12월 10일
·
0개의 댓글

[Apache Spark] 스파크 애플리케이션 개발하기

스파크 애플리케이션 → 스파크 클러스터 + 사용자 코드스칼라는 스파크의 '기본' 언어이기 때문에 애플리케이션을 개발하는 가장 적합한 방법으로 볼 수 있다.스파크 애플리케이션은 두 가지 자바 가상 머신 기반의 빌드 도구인 sbt나 아파치 메이븐을 이용해 빌드할 수 있다.

2021년 12월 10일
·
0개의 댓글

[Spark] Spark Streaming 피보나치 수열 예제

상태 기반 : n번째 요소를 얻기 위해 n-1 번째 요소를 처리, 비상태 기반 : 비네 공식 (Binet formula) 를 이용하여 이전 요소를 구하지 않고 직접 계산

2021년 12월 9일
·
0개의 댓글
post-thumbnail

[Apache Spark] 스파크 튜닝하기

프로그램이 종료되는 많은 원인 중 하나는 Out of Memory(OOM) 에러이다. → Spark 튜닝으로 성능 최적화와 함께 OOM 에러를 해결할 수 있다.    1개의 익스큐터는 하나의 JVM을 갖는다.각각의 익스큐터는 같은 개수의 Core와 같은 크기의 Memo

2021년 11월 30일
·
0개의 댓글

[Apache Spark] RDD 재사용을 위한 persist, cache, checkpointing

스파크는 RDD 재사용을 위해 몇 가지 옵션을 제공한다. → persistence, caching, checkpointingRDD 재사용을 통해 퍼포먼스를 향상시킬 수 있는 경우는 아래와 같다. 반복적인 연산매번 연산할 때마다 데이터 세트가 메모리 내에 존재하고 있는

2021년 11월 30일
·
0개의 댓글

[Apache Spark] RDD의 내부 동작

파티션 목록각 split을 연산(계산)하는 데에 사용되는 함수의존하는 다른 RDD 목록(optional) Key-Value RDD를 위한 파티셔너(optional) 각 split이 연산되는 데이 최적의 노드 목록   RDD는 여러 개의 파티션으로 이루어져 있고, 하나의

2021년 11월 30일
·
0개의 댓글
post-thumbnail

[Apache Spark] Parquet (파케이)

컬럼 기반 포맷같은 종류의 데이터가 모여있어 압축률이 더 높고, 일부 컬럼만 읽어 들일 수 있어 처리량을 줄일 수 있다.스파크에서는 parquet 파일을 손쉽게 읽고 쓸 수 있다.데이터를 분석하기 전 json을 읽어 parquet으로 저장해두고 이후에는 parquet에

2021년 11월 30일
·
0개의 댓글
post-thumbnail

[Apache Spark] 클러스터에서 스파크 실행하기

스파크 드라이버스파크 애플리케이션의 실행을 제어하고 스파크 클러스터(익스큐터의 상태와 태스크)의 모든 상태 정보를 유지한다.물리적 컴퓨팅 자원 확보와 익스큐터 실행을 위해 클러스터 매니저와 통신할 수 있어야 한다.스파크 익스큐터스파크 드라이버가 할당한 태스크를 수행하는

2021년 11월 30일
·
0개의 댓글
post-thumbnail

[Apache Spark] 분산형 공유 변수

변하지 않는 값을 클로저(closure) 함수의 변수로 캡슐화하지 않고 클러스터에서 효율적으로 공유하는 방법을 제공한다.태스크에서 드라이버 노드의 변수를 사용할 때는 클로저 함수 내부에서 단순하게 참조할 수 있지만, 클로저 함수에서 변수를 사용할 때 워커 노드에서 여러

2021년 11월 30일
·
0개의 댓글

[Apache Spark] RDD 고급 개념

RDD에는 데이터를 키-값 형태로 다룰 수 있는 다양한 메서드가 있다<연산명>ByKey 형태 → PairRDD 타입만 사용 가능PairRDD 타입은 RDD에 맵 연산을 수행해 키-값 구조로 만들 수 있다. 즉, 레코드에 두 개의 값이 존재한다.KeyBy: 키를 생

2021년 11월 30일
·
0개의 댓글

[Apache Spark] RDD

분산 데이터 처리를 위한 RDD브로드캐스트 변수와 어큐뮬레이터처럼 분산형 공유 변수를 배포하고 다루기 위한 API1️⃣ 언제 사용할까?!고수준 API에서 제공하지 않는 기능이 필요한 경우 예) 클러스터의 물리적 데이터의 배치를 세밀하게 제어해야 하는 상황 RDD를

2021년 11월 30일
·
0개의 댓글

[Apache Spark] Dataset

Dataset은 구조적 API의 기본 데이터 타입이다. Dataset은 자바 가상 머신을 사용하는 언어인 스칼라와 자바에서만 사용할 수 있다. Dataset을 사용해 데이터셋의 각 로우를 구성하는 객체를 정의한다. DataFrame은 Row 타입의 Dataset을 의미

2021년 11월 30일
·
0개의 댓글