본문 바로가기
Big Data/Apache Spark

[Spark] Spark Job

by seaweed_one 2022. 12. 15.
728x90

이번 포스팅에선 스파크의 작업에 대하여 알아보겠습니다.

먼저 스파크 작업은 어떻게 이루어져 있는지를 알아보고 , 어떤 방식으로 실행될 수 있는지를 알아볼게요!

Job의 구조

spark에서 수행되는 작업은 job, stage, task 로 구성됩니다.

  • job : spark app에 제출된 작업을 의미합니다.
  • stage : 단위에 따라 구분하는 작업으로 job을 여러 개의 stage로 쪼갤 수 있습니다.
  • task : 익스큐터에서 실행되는 실제 작업의 단위로 가장 작은 단위의 객체입니다.

Spark Job의 구조

Spark Application의 구조

spark application 은 driver, executor process로 실행되는 프로그램입니다.

application 에는 작업을 관리하는 dirver와 작업이 실행하는 노드를 관리하는 cluster manager가 존재하는데요.

애플리케이션의 구조를 알기 위해서는 아래와 같은 개념 이해가 필요합니다.

  • driver : main 메소드가 실행되는 프로세스로 스파크 앱의 라이프 사이클을 관리합니다. 또한 사용자 입력을 spark application에 전달하여 spark context 객체를 생성합니다. 여기서 spark context 는 클러스터 매니저와 연결되는 객체입니다. 
  • cluster manager : 스파크 앱의 리소스를 효율적으로 배분하고 스파크가 다른 외부 매니저 위에서 돌아갈 수 있게 돕습니다. spark는 *yarn , stand alone 등의 클러스터 매니저를 지원하는데 대표적으로 yarn은 클러스터 매니저와 연결되어 Spark Context는 WorkerNode에 있는 executor에 잡을 할당 합니다. executor 는 실제 작업을 진행하는 프로세스 task 단위로 작업을 실행, 결과를 드라이버에 알립니다.
  • WorkerNode : 클러스터에서 애플리케이션을 실행시킬 수 있는 Node를 의미합니다.

이렇게 Spark Job & Spark Applicatioin의 구조를 알아보았는데요.

다음 포스팅에서는 Spark 의 DepolyMode에 대하여 알아보겠습니다.

728x90

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

[Spark] Spark Cluster Manager  (2) 2022.12.16
[Spark] Spark Deploy Mode  (0) 2022.12.16
[Spark] Spark Evalution  (0) 2022.12.13
[Spark] Spark Partitioning  (0) 2022.12.11
[Spark] Spark 란?  (0) 2022.12.11