본문 바로가기

IT/Spark

Spark Cluster #1

용어 정리

  • 마스터
    • 모델링 관점에서 보았을 때, 클러스터 운영 및 제어에 사용되는 논리적 서버를 말한다. 
  • 슬레이브
    • 마스터가 아닌 워커 노드
  • 워커 노드
    • 작업이 수행되는 서버
  • 클러스터
    • 여러 개의 서버가 네트워크를 통해 연결되어 마치 하나의 서버인 것처럼 동작
  • 드라이버 프로그램
    • 스파크 컨텍스트를 생성 관리하는 매니저. 
    • 메인함수를 시작하는 프로그램을 가리킨다.
  • Executor
    • 워커 노드에서 실행되는 프로세스(스래드가 아니라 프로세스가 실행된다.)
  • 스파크 컨텍스트
    • 스파크의 시작점(데이터베이스의 커넥션과 비슷) 또는 스파크 클러스터의 연결을 의미
    • 컨텍스트를 공유하는 것은 불가능하다.
  • 어플리케이션 패키지 파일
    • 작성된 드라이버 프로그램을 jar 로 패키징한 파일

구성도

작업 수행 절차

  1. 드라이버 프로그램 작성
  2. jar 로 패키징, "어플리케이션 패키지 파일".jar
  3. 스파크 클러스터에 배포 by spark-submit
    1. 스파크 컨텍스트 생성
    2. 각 노드(워커노드)에서 프로세스 생성. 각 워커 노드에 생성된 프로세스를 Executor 라고 한다.
  4. 작성된 프로그램에 의해 RDD 트랜스포메이션 및 연산이 실행됨. 이때 연산이 호출될때만 실제 작업이 수행되는데, 이것을 Job 이라 한다.
  5. Job은 실제로 여러 스테이지 단계를 거친다. 스테이지 나누는 기준은 셔플 및 재비치 여부에 따라 결정된다.
    1. 셔플이 발생하면 네트워크 송수신이 발생하므로 , 지역성이 최대화 되어야 한다.
  6. 스테이지는 다시 여러개의 Task로 나눠진 후, 분산처리를 위해 여러 Executor에 분배되어 실행된다.
    1. 이때 Executor는 두가지 역할을 수행하는데, 태스크 처리와 처리된 데이터를 메모리에 캐쉬한다.









'IT > Spark' 카테고리의 다른 글

kafka windows build  (0) 2018.01.10
RDD Data Load, Save  (2) 2017.12.18
RDD Action  (0) 2017.12.18
RDD filter And Sort  (0) 2017.12.18
RDD Operate Partition  (0) 2017.12.18