반응형

Spark 드라이버란?

  • SparkSession 객체를 초기화 해줍니다.
  • 클러스터 매니저와 통신하며 스파크 이그제큐터들을 위해 필요한 자원(CPU, Memory 등)을 요청하고 모든 스파크 작업을 DAG 연산 형태로 변환하고 스케줄링하며 각 실행 단위를 태스크로 나누어 스파크 이그제큐터들에게 분배해줍니다. 자원이 할당되면 Spark 드라이버는 이그제큐터와 직접 통신합니다.
반응형
반응형

Spark 애플리케이션 이란?

Spark 애플리케이션은 Spark 클러스터의 병렬 작업들을 조율하는 하나의 드라이버 프로그램으로 이루어져 있습니다.

 

드라이버란?

드라이버는 SparkSession 객체를 통해 클러스터의 분산 컴포넌트들(Spark 이그제큐터와 클러스터 매니저)에 접근합니다.

-> Spark 애플리케이션 안에 Spark 드라이버가 SparkSession 을 통해 Spark 이그제큐터와 클러스터 매니저에 접근)

반응형
반응형

GraphX

  • 그래프 처리를 위한 라이브러리로(네트워크 망 구성 그래프, 친구 관계 그래프 등), 그래프 병렬 연산을 수행을 도와줍니다.
반응형
반응형

Spark 정형화 스트리밍(Structured Streaming)

  • 실시간 데이터 스트림 처리를 위한 라이브러리로, 구조화된 데이터를 다루면서 스트리밍 처리를 할 수 있도록 도와줍니다.
반응형

'Data engineer > Apache Spark' 카테고리의 다른 글

[Spark]Spark 애플리케이션 이란?  (0) 2024.01.07
[Spark]GraphX  (0) 2024.01.07
[Spark]Spark MLlib(Machine Learning Library)  (0) 2024.01.07
[Spark]Spark SQL 이란?  (0) 2024.01.07
[Spark]Spark 특성 4가지  (1) 2024.01.07
반응형

Spark MLlib(Machine Learning Library)

  • 머신러닝 알고리즘과 유틸리티 기능을 제공하는 라이브러리로, 분류, 회귀, 군집화 등의 머신러닝 작업을 지원합니다.
  • Spark 1.6 을 시작으로 MLlib 은 spark.mllib 과 spark.xml 로 분리 되었습니다.
    • spark.mllib 은 RDD 베이스이며 유지보수 상태입니다.
    • spark.xml 은 데이터 프레임 기반 API 입니다. 모든 새로운 기능은 spark.xml 로 업데이트 되고 있습니다.
  • MLlib API 는 특성을 추출하고 변형하고 파이프라인을 구축하고 배포하는 동안 모델을 보존해줍니다.
반응형
반응형

Spark SQL 이란?

  • 구조화된 데이터와 잘 작동하며, 구조화된 데이터에 대한 분산 쿼리 및 데이터 처리를 제공하는 라이브러리입니다.
  • RDBMS 테이블, 구조화된 데이터의 파일 모팻에서 데이터를 읽어 그 데이터로 스파크에 영구적이거나 임시적인 테이블을 SQL 문을 사용하여 데이터에 쉽게 접근할 수 있도록 합니다.

 

반응형
반응형

Spark 특성 4가지

Spark 특성으로는 4가지가 있습니다. 속도, 사용 편의성, 모듈성, 그리고 확장성이 있습니다.

 

 

속도

  • Spark 는 질의 연산을 방향성 비순환 그래프(directed acyclic graph, Dag)로 구성합니다.
  • Dag 의 스케줄러와 질의 최적화 모듈은 효율적인 연산 그래프를 만들어서 각가의 태스크로 분해하여 클러스터의 워커 노드 위에서 병렬 수행될 수 있도록 해줍니다.
  • Spark 는 물리적 실행 엔진인 Tungsten(텅스텐) 의 전체적 코드 생성(whole-stage code generation) 이라는 방법을 사용하여 간결한 코드를 생성합니다.
  • Spak 는 디스크 I/O 를 제한적으로 사용하여 성능이 크게 향상시켰습니다.

*방향성 비순환 그래프(directed acyclic graph, Dag)

https://infoinhere.tistory.com/118

 

사용 편의성

  • RDD 를 제공하여 편한 언어로 빅데이터 애플리케이션을 만들 수 있도록 해줍니다.

 

모듈성

  • api 로 이루어진 통합 라이브러리를 제공합니다.
  • 컴포넌트로는 스파크 SQL, 스파크 정형화 스트리밍, 스파크 MLlib, GraphX 가 있습니다.

 

확장성

  • Spark 는 저장보다는 빠른 병렬 연산 엔진에 집중되어 있습니다. 저장과 연산을 모두 포함하는 Apache Hadoop 과 달리 저장과 연산을 분리했습니다.
  • Spark DataFrameReader 와 DataFrameWriter 는 kafka, Kinesis, Azure, AWS S3 등의 데이터 소스에서 데이터를 읽어와 논리적인 데이터 추상화 레벨에서 처리하도록 확장이 가능합니다.
  •  
반응형
반응형

방향성 비순환 그래프(directed acyclic graph, Dag)

방향성 비순환 그래프(DAG)는 각 요소가 특정 방향으로 향하고 있으며, 상호적으로 연결되어 순환하지 않는 구조를 가지는 그래프를 의미합니다.

 

특징

  • 방향성: 각 엣지는 방향을 가지고 있습니다.
  • 비순환성: 그래프 내에서 순환 또는 루프가 없습니다.

 

장점

  • 효율적인 데이터 처리: 순환이 없기 때문에, 데이터 처리와 알고리즘이 효율적으로 이루어집니다.
  • 의존성 관리: 작업 간의 의존성을 명확하게 정의하여 작업을 효과적으로 조정할 수 있습니다

 

단점

  • 복잡한 구현: 일부 문제에 대한 DAG의 구현은 복잡할 수 있습니다.
  • 일부 작업에서 효과적이지 않을 수 있음: 특정 유형의 문제에는 DAG가 효과적이지 않을 수 있습니다.

 

응용사례

  • 작업 스케줄링: 작업 간의 의존성을 관리하고 병렬로 실행 가능한 작업을 식별하는 데 사용됩니다.
  • 데이터 흐름 그래프: 머신 러닝 및 데이터 처리에서 데이터 흐름을 표현하는 데 사용됩니다.

 

효과적인 사용 방법

  • 의존성 분석: 작업 간의 의존성을 명확하게 이해하고 그에 따라 작업을 조직합니다.
  • 효율적인 병렬 처리: 병렬로 실행 가능한 작업을 식별하여 시스템 자원을 효과적으로 활용합니다.
반응형

'Data engineer > Apache Spark' 카테고리의 다른 글

[Spark]GraphX  (0) 2024.01.07
[Spark]Spark 정형화 스트리밍(Structured Streaming)  (1) 2024.01.07
[Spark]Spark MLlib(Machine Learning Library)  (0) 2024.01.07
[Spark]Spark SQL 이란?  (0) 2024.01.07
[Spark]Spark 특성 4가지  (1) 2024.01.07

+ Recent posts