본문 바로가기

spark6

Apache Spark : Join strategy 목차 LIST Join operation은 스파크에서 가장 대중적으로 사용되는 transformation이다. 스파크는 join을 어떻게 구현할지 선택하기 위한 몇가지 알고리즘을 사용한다. 이 알고리즘들은 스파크가 작업을 어떻게 처리할지 결정하는 단계에서 사용된다. 아래에서 스파크가 조인을 사용하기 위한 전략을 결정하는지 알아보자. Spark Join 전략의 요소들 Data Size Spark는 비용이 많이 드는 셔플과 정렬을 피할 수 있는 join 전략을 선택한다. 따라서, 데이터가 브로드캐스트 될 수 있다면 해시 기반 join 전략을 더 선호한다. 셔플 (shuffle)? Apache Spark에서 shuffle은 데이터를 재분배하는 과정을 의미합니다. shuffle은 특정 작업을 수행하기 위해 다른.. 2024. 3. 21.
Apache Spark : RDD, Transformation, Action, Persist 목차 LIST RDD 스파크는 연산 과정을 클러스터 전체에 걸쳐 자동으로 병렬화하여 분산 배치된 연산 작업들의 모음으로 표현한다. 이 모음은 RDD(Resilient Distributed Dataset, 탄력적인 분산 데이터세트)라고 부른다. RDD는 분산 데이터와 연산을 위한 스파크의 핵심 개념이다. 즉, RDD는 분산되어 존재하는 데이터 요소들의 모음이다. RDD 기초 RDD는 쉽게 말하면 '분산되어 있는 변경 불가능한 객체 모음'이다. 각 RDD는 클러스터의 서로 다른 노드들에서 연산이 가능하도록 여러 개의 파티션으로 나뉜다. RDD는 외부 데이터세트를 로드하거나 드라이버 프로그램에서 객체 컬렉션(ex. list, set)을 분산시키는 두 가지 방법으로 생성할 수 있다. 아래는 SparkContex.. 2024. 2. 27.
Apache Spark : SparkContext vs SparkSession SparkContext와 SparkSession의 차이점은 스파크 사용자들 사이에서 자주 논의되는 주제입니다. 둘 다 스파크의 엔트리 포인트(entry points)로 사용 가능하지만, 몇 가지 차이점이 있습니다. 이제 차이점에 대해 알아보겠습니다. 엔트리 포인트(entry point)? 프로그래밍 언어에서 엔트리 포인트는 프로그램 실행이 시작되는 함수나 메서드입니다. 예를 들면 main() 함수가 전형적인 엔트리 포인트입니다. 스파크와 같은 프레임워크에서의 엔트리 포인트는 해당 라이브러리나 프레임워크의 기능을 초기화하고 접근하기 위한 API나 함수를 말합니다. 예를 들어, 스파크에서 SparkContext, SparkSession은 애플리케이션이 스파크 기능을 사용하기 위해 초기에 접근해야 하는 엔트리.. 2024. 2. 26.
Apache Spark : Spark 소개 및 구조 목차 LIST 스파크의 간략한 역사 스파크는 UC 버클리의 RAD 연구실(AMPLab)의 연구 프로젝트로 2009년에 시작됐다. 연구원들은 이전에 하둡 맵리듀스로 일한 경험이 있었는데, 맵리듀스가 반복적인 대화형 연산 작업에는 비효율적인 것을 발견했다. 그래서 스파크는 시작부터 인메모리 저장 장치 및 효과적인 장애 복구 지원 같은 개념에 기반하여 대화형 쿼리와 반복성 알고리즘에 빠르게 동작하도록 설계되었다. 스파크란 아파치 스파크는 가장 활발하게 개발되고 있는 병렬 처리 오픈소스 엔진이며, 표준 도구로 자리잡고 있다. 널리 쓰이는 네 가지 언어(파이썬, 자바, 스칼라, R)를 지원하며 SQL 뿐만 아니라 스트리밍, 머신러닝에 이르기까지 넓은 범위의 라이브러리를 제공한다. 스파크는 단일 노트북 환경에서부터.. 2024. 2. 6.
MapReduce vs Spark | 맵리듀스와 스파크의 차이점 위 그림에서 볼 수 있듯이 기존 MapReduce 엔진(왼쪽)에 비해 최신 처리 프레임워크(Tez, Impala 및 Spark)의 주요 특징은 HDFS에 중간 결과를 쓰지 않고 실행 그래프를 최적화한다는 것입니다. 또 실행 그래프 전체에 걸쳐 로컬 노드의 메모리에서 데이터를 처리/캐싱합니다.. 실제로 Hadoop MapReduce와 Spark의 주요 차이점은 처리 방식에 있습니다. Spark는 메모리 내에서 처리할 수 있지만 Hadoop MapReduce는 디스크에서 읽고 써야 합니다. 이에 따라 처리 속도가 크게 달라지며 Spark가 최대 100배 더 빠를 수 있습니다. 하지만 Hadoop MapReduce는 Spark보다 훨씬 큰 데이터셋을 작업할 수 있습니다. * 참고: Tez Apache Tez는.. 2022. 8. 13.
Spark RDD, DAG란? Apache Spark는 빅 데이터 워크로드에 주로 사용되는 오픈 소스 분산 처리 시스템이다. Apache Spark는 빠른 성능을 위해 인 메모리 캐싱과 최적화된 실행을 사용하며, 일반 배치 처리, 스트리밍 분석, 기계 학습, 그래프 데이터베이스 및 임시 쿼리를 지원한다. MapReduce는 데이터의 중간 과정을 HDFS에 저장하기 때문에 오버헤드가 발생한다. Spark는 이러한 문제점을 In-Memory 처리로 해결할 수 있다. 하지만 메모리 특성상 중간에 오류가 나면 데이터가 모두 사라지게되어 처음부터 다시 연산해야 하는 단점이 생긴다. Spark는 메모리에서 데이터가 유실되면 RDD의 Lineage 기록에 따라 유실되었던 RDD를 다시 생성한다. 이 내용은 뒤에서 다시 한번 언급된다. Apache.. 2022. 8. 12.
반응형