반응형

트랜스포메이션과 액션

트랜스포메이션

  • 불변성의 특징을 가진 원본 데이터를 수정하지 않고 하나의 Spark 데이터 프레임을 새로운 데이터 프레임으로 바꾸는 것을 말합니다. 예를 들어 select(), filter() 같은 연산은 원본 데이터 프레임을 수정하지 않으며, 새로운 데이터 프레임으로 연산 결과를 만들어 되돌려 줍니다.
  • 모든 트랜스포메이션은 뒤늦게 평가합니다. 결과가 즉시 계산되는 게 아니라 계보(lineage)라 불리는 형태로 기록됩니다. 기록된 lineage 는 실행 계획에서 후반쯤에 Spark 가 확실한 트랜스포메이션들끼리 재배열하거나 합치거나 해서 더 효율적으로 실행할 수 있도록 최적화하도록 합니다.
  • 지연 평가는 액션이 실행되는 시점이나 데이터에 실제 접근하는 시점까지 실제 실행을 미루는 Spark 의 전략입니다.

 

액션

  • 액션은 모든 기록된 트랜스포메이션의 지연 연산을 발동시킵니다.
반응형
반응형

Spark 애플리케이션 용어

  • 애플리케이션: API 를 써서 Spark 위에서 돌아가는 사용자 프로그램입니다. 드라이버 프로그램과 클러스터의 실행기로 이루어집니다.
  • SparkSession: Spark 코어 기능들과 상호 작용할 수 있는 진입점을 제공하며, 그 API 로 프로그래밍을 할 수 있게 해주는 객체입니다. Spark shell 에서 Spark 드라이버는 기본적으로 SparkSession 을 제공하지만 Spark 애플리케이션에서는 사용자가 SparkSession 객체를 생성해서 써야 합니다.
  • Job: Spark action(예. save(), collect()) 에 대한 응답으로 생성되는 여러 task 로 이루어진 병렬 연산입니다.
  • Stage: 각 job 은 스테이지라 불리는 서로 의존성을 가지는 다수의 task 모음으로 나누어집니다.
  • Task: Spark 이그제쿠터로 보내지는 작업 실행의 가장 기본적인 단위입니다.
반응형

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

[Spark]RDD 의 3가지 특성  (1) 2024.01.21
[Spark]트랜스포메이션과 액션  (0) 2024.01.21
[Spark]Spark 디렉토리와 파일들  (0) 2024.01.09
[Spark]Spark 사용 예시  (0) 2024.01.09
[Spark]tungsten 이란?  (0) 2024.01.07
반응형

Spark 디렉토리와 파일들

  • README.md
  • bin
    • Spark shell 들을 포함하여 Spark 와 상호 작용할 수 있는 대부분의 스크립트를 가지고 있습니다.
    • shell 과 실행 파일은 나중에 spark-submit 을 써서 단독 Spark 애플리케이션을 제출하거나 쿠버네티스로 Spark 를 실행할 때 도커 이미지를 만들고 푸시하는 스크립트 작성을 위해 사용할 수 있습니다.
  • sbin
    • 스크립트 중 대부분은 다양한 배포 모드에서 클러스터의 Spark 컴포넌튿르을 시작하고 중지하기 위한 관리 목적에 스크립트입니다.
  • kubernetes
    • Spark 2.4 릴리스부터 이 디렉토리에 쿠버네티스 클러스터에서 쓰는 Spark 를 위한 도커 이미지 제작을 위한 Dockerfile 들이 있습니다.
  • data
    • MLlib, 정형화 프로그래밍, GraphX 등에서 입력으로 사용되는 *.txt 파일들이 있습니다.
  • examples
    • 코드 examples 가 있습니다.
반응형

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

[Spark]트랜스포메이션과 액션  (0) 2024.01.21
[Spark]Spark 애플리케이션 용어  (0) 2024.01.09
[Spark]Spark 사용 예시  (0) 2024.01.09
[Spark]tungsten 이란?  (0) 2024.01.07
[Spark]Spark executor 이란?  (0) 2024.01.07
반응형

Spark 사용 예시

  • 클러스터 전체에 걸쳐 분산된 대규모 데이터 세트의 병렬 처리.
  • 데이터 탐색이나 시각화를 위한 일회성이나 대화형 질의 수행.
  • MLlib 을 이용해 머신러닝 모델을 구축, 훈련, 평가하기.
  • 다양한 데이터 스트림으로부터 끝까지 데이터 파이프라인 구현.
  • 그래프 데이터 세트와 소셜 네트워크 분석.
반응형

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

[Spark]Spark 애플리케이션 용어  (0) 2024.01.09
[Spark]Spark 디렉토리와 파일들  (0) 2024.01.09
[Spark]tungsten 이란?  (0) 2024.01.07
[Spark]Spark executor 이란?  (0) 2024.01.07
[Spark]Spark Cluster Manager 이란?  (0) 2024.01.07
반응형

tungsten 이란?

Spark 의 Tungsten은 성능 향상을 위해 설계된 엔진으로, 텅스텐 엔진이라고도 불립니다. 이 엔진은 여러 최적화 기술을 결합하여 스파크의 처리 속도와 메모리 효율성을 향상시킵니다.

  • 텅스텐 엔진은 객체를 이진수로 인코딩하여 메모리에서 직접 참조하는 방식을 사용합니다.
  • 오프-힙 할당과 온-힙 할당 두 가지 메모리 관리 모드를 지원하며, 오프-힙 모드는 Unsafe 클래스를 사용해 직접 메모리를 할당하고 해제합니다.
  • 온-힙 모드는 이진수로 인코딩한 객체를 JVM이 관리하는 배열에 저장하고, 오프-힙 모드는 스파크가 배열을 직접 관리합니다.
  • 오프-힙 모드는 기본으로 비활성화되어 있지만, spark.unsafe.offHeap 환경 매개변수를 true로 설정하여 활성화 가능합니다.
  • 이진수로 인코딩된 객체는 적은 메모리를 차지하며, 텅스텐 엔진은 CPU의 캐시를 효율적으로 활용하는 다양한 기법을 사용합니다.
반응형

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

[Spark]Spark 디렉토리와 파일들  (0) 2024.01.09
[Spark]Spark 사용 예시  (0) 2024.01.09
[Spark]Spark executor 이란?  (0) 2024.01.07
[Spark]Spark Cluster Manager 이란?  (0) 2024.01.07
[Spark]SparkSession 이란?  (0) 2024.01.07
반응형

Spark executor 이란?

  • 클러스터의 각 워커 노드에서 동작합니다.
  • 드라이버 프로그램과 통신하며 워커에서 테스크를 실행합니다.
  • 대부분의 배포 모드에서 노드당 하나의 이그제큐터만이 실행됩니다.
반응형

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

[Spark]Spark 사용 예시  (0) 2024.01.09
[Spark]tungsten 이란?  (0) 2024.01.07
[Spark]Spark Cluster Manager 이란?  (0) 2024.01.07
[Spark]SparkSession 이란?  (0) 2024.01.07
[Spark]Spark 드라이버란?  (0) 2024.01.07
반응형

Spark Cluster Manager 이란?

  • Spark 애플리케이션이 실행되는 클러스터에서 자원을 관리 및 할당하는 책임을 가지고 있습니다.
  • 현재 Spark 는 네 종류의 Cluster manager 를 지원합니다. 내장 단독(standalone) cluster manager, 아파치 하둡 얀(Yarn), 아파치 메소스(mesos), Kubernetes 입니다.
반응형

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

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

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

+ Recent posts