스파크

BigData

[Apache Spark] 스파크의 셔플(Shuffle)에 대하여

1. Spark에서 Shuffle에 대해서 Apache Spark에서 셔플 작업은 일반적으로 데이터 그룹화 또는 집계와 같은 후속 처리 단계를 준비하기 위해 클러스터의 노드 전체에 데이터를 재분배하는 데 사용됩니다. 여기에는 데이터를 더 작은 청크로 분할하고, 네트워크 전체에서 데이터를 섞은 다음, 데이터를 새로운 청크 집합으로 다시 분할하는 작업이 포함됩니다. 셔플 작업은 Spark에서 가장 비용이 많이 드는 작업 중 하나이며 성능에 상당한 영향을 미칠 수 있습니다. Apache Spark에는 두 가지 주요 유형의 셔플이 있습니다: Map-side 셔플: 이것은 네트워크를 통해 데이터를 전송하기 전에 단일 노드 내에서 데이터를 셔플 하는 것을 포함합니다. 이는 특히 데이터가 이미 분할되어 있거나 데이터..

BigData

[Apache Spark] 스파크의 클러스터 관리에 대하여

1. Intorduction 클러스터 관리자의 목적은 논리적 코드를 실제 실행할 수 있도록 물리적 자원을 할당하는 것이다. 물리적 자원 할당에는 다양한 방식이 있지만, 클러스터 관리자는 단일 머신상에서의 운영 시스템을 일반화한 것이며, 단일 머신상의 문제와 동일한 수많은 문제를 해결해야 한다. 운영 시스템의 핵삼 개념을 이해한다면 클러스터 관리자 툴의 필요에 흥미를 느끼게 될 것이다. 왜냐하면, 결국 동일한 개념이 분산 생태계에서 다양한 방식으로 구현된 것 이기 때문이다. 단일 머신에서 운영 시스템(OS)의 역할은 해당 머신의 물리적 하드웨어와 이 하드웨어상에서 실행되는 소프트웨어 사이의 인터페이스라고 정의할 수 있다. 이 인터페이스는 의사 소통을 위한 언어의 정의, 태스크와 프로세스들의 스케줄링, 이들..

BigData

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

Spark를 사용하다보면 메모리 관련해서 문제가 발생되는 경우가 많습니다. 최근 연구하는데 있어서 Apach Spark의 Structured Streaming(https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html)을 사용할 일이 있어서 사용하는데 메모리 관련해서 문제가 자주 발생되어 이와 관련된 공부한 내용을 적습니다. 본격적인 스파크의 메모리 관리를 알아보기 위해서는 Spark가 왜 메모리 관리 관련해서 알아야되는지 알아야합니다. 왜 스파크의 메모리 관리에 대해서 알아야 하는가? 🤯 스파크는 Task가 수행하는데 있어서 모든 계산이 메모리 내에서 발생하는 메모리 내 처리 엔진입니다 (정확히는 In-Memory t..

BigData

아파치 스파크(Apache Spark)의 기본 배경지식

이번에는 아파치 스파크의 DataFrame, SQL을 사용해 클러스터, 스파크 애플리케이션 그리고 구조적 API를 살펴봅시다. 스파크의 기본 아키텍처 보통 컴퓨터로는 대규모 정보를 연산할 만한 자원이나 성능을 가지지 못합니다. 연산을 할 수 있다고 해도 완료하는 데 너무 많은 시간이 걸릴 수 있습니다. 컴퓨터 클러스터는 여러 컴퓨터의 자원을 모아 하나의 컴퓨터처럼 사용할 수 있게 만듭니다. 하지만 컴퓨터 클러스터를 구성하는 것만으로는 부족하며 클러스터에서 작업을 조율할 수 있는 프레임워크가 필요합니다. 스파크가 바로 그런 역할을 하는 프레임워크입니다. 스파크는 클러스터의 데이터 처리 작업을 관리하고 조율합니다. 스파크가 연산에 사용할 클러스터는 스파크 Standalone 클러스터 매니저, 하둡 YARN,..

busybeans
'스파크' 태그의 글 목록