ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spark : 구조
    AI 2022. 7. 26. 15:54

    드라이버 ( 작업 관리 ) + 클러스터 매니저 ( 노드 관리 )

    스파크 애플리케이션의 구조

    • 마스터-슬레이브 구조로 실행되며, 애플리케이션은 드라이버(작업 관리)와 익스큐터(작업 동작)로 구성
    • 드라이버 : 스파크 컨텍스트 객체 생성, 클러스터 매니저와 통신하며 클러스터 자원 관리 지원, 애플리케이션 라이프 사이클 관리

    스파크 애플리케이션

    • 드라이버와 Executor로 실행되는 스파크 실행 프로그램으로 클러스터 매니저를 통해 리소스를 할당 받음.
    • 드라이버
      • 스파크 애플리케이션을 실행하는 프로세스
      • main 함수를 실행하고, 스파트 컨텍스트 객체 생성
      • 라이프 사이클을 관리하고, 사용자로 부터 입력을 받아서 애플리케이션에 전달
      • 디플로이 모드를 클라이언트 모드(클러스터 외부에서 드라이버 실행)와 클러스터 모드(클러스터 내부에서 드라이버 실행)로 설정할 수 있음. 
    • Executor
      • Task 실행을 담당하는 에이전드로 실제 작업을 진행하는 프로세스
      • YARN의 컨테이너라고 볼 수 있다.
      • Task 단위로 작업을 싱행하고 결과를 드라이버에 알려줌.
      • 오류 발생 시 재작업 진행
    • Task
      • Executor의 실제 작업.
      • Executor와 캐쉬를 공유하여 작업의 속도 향상 가능

    Spark Job

    • Job ( 스파크 애플리케이션에 제출된 작업 ) > Stage (잡을 Task의 단위에 따라 구분 ) > Task

    Cluster Manager

    • YARN
      • 하둡 클러스터 매니저 [ 리소스 매니저, 노드 매니저로 구성 ]
    • Mesos
      • 동적 리소스 공유 및 격리를 사용하여 여러 소스의 워크로드를 처리
      • 아파치의 클러스터 매니저 [ Master, Slave로 구성 ]
    • StandAlone
      • 스파크에서 자체적으로 제공하는 클러스터 매니저
      • 각 노드에서 하나의 익스큐터만 실행 가능

    Thriftserver

    • hiveserver2와 비슷한 역할을 하며, SparkSQL 엔진을 이용하여 SQL을 처리

     

    참고 : https://wikidocs.net/book/2350

    'AI' 카테고리의 다른 글

    Spark : Dataset / DataFrame  (0) 2022.07.29
    Spark : RDD  (0) 2022.07.27
    Spark : Basic  (0) 2022.07.26
    MLOps 입력값 드리프트  (0) 2022.07.13
    Sequence To Sequence  (0) 2021.01.03

    댓글

Designed by Tistory.