반응형

SparkSession 이란?

  • 모든 Spark 연산과 데이터에 통합 연결이 되어 있습니다.
  • 연결 채널을 통해 JVM 실행 파라미터들을 만들고 데이터 프레임 또는 데이터 세트를 정의하고, 데이터 소스에서 데이터를 읽어오고, 메타 데이터에 접근하고, 스파크 SQL 질의를 실행할 수 있습니다.
  • SparkSession 은 모든 Spark 기능을 한 군데에서 접근할 수 있는 시작점을 제공합니다.
반응형

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

[Spark]Spark executor 이란?  (0) 2024.01.07
[Spark]Spark Cluster Manager 이란?  (0) 2024.01.07
[Spark]Spark 드라이버란?  (0) 2024.01.07
[Spark]Spark 애플리케이션 이란?  (0) 2024.01.07
[Spark]GraphX  (0) 2024.01.07
반응형

Spark 드라이버란?

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