1 스파크 핵심 부품
1.1 클러스터 관리자 (마스터, ResourceManager에)
전체 클러스터 자원의 할당 및 관리를 주로 담당 스파크 클러스터 관리자, 클러스터 관리자
- 에서는 원사 전개 모드 하에서 는 ResourceManager
- 에서 메소 배포 모드에서 메소 마스터
- 에서 독립 에 대한 배포 모드에서 마스터.
클러스터 관리자 자원 할당은 할당에 속하는 각각의 노동자, CPU 및 응용 프로그램에 할당 된 다른 자원의 특성의 메모리 ,하지만 자원 집행자의 할당에 대한 책임을지지 않습니다.
1.2 작업자 (작업자 NodeManager)
스파크의 작업 노드 에서 원사 실제 배포 모드로. NodeManager의 대안. 다음에 대한 주요 책임 :
- 등록 메커니즘을 통해 자신의 메모리, CPU 및 기타 리소스 클러스터 관리자를 알려
- 만들기 집행자
- 집행 인에 대한 리소스 및 태스크의 추가 할당
- 동기화 자원 정보, 집행자 상태 및 ClusterManager 기타 정보
1.3 드라이버
스파크 드라이브 노드, 실제 코드의 실행에 대한 책임 스파크에서 작업을 수행하는 데 사용되는 주요 방법 드라이버는 스파크에서 작업 실행에 대한 책임이 있습니다 :
- 작업에 사용자 프로그램 (작업)
- 집행 인 스케줄링 작업 사이 (작업)
- 집행자의 구현을 추적
- UI가 표시 조회 조작 스루
1.4 집행자
스파크 집행자 노드는 스파크 작업에서 특정 작업을 실행에 대한 책임 , 작업은 서로 독립적입니다. 스파크는 응용 프로그램이 시작되면 집행 인 노드는 동시에 시작하고, 항상 스파크 응용 프로그램이 존재의 전체 라이프 사이클을 동반합니다. 이 집행자 노드가 실패하거나 손상된 경우, 스파크 응용 프로그램이 계속 실행 수, 작업 스케줄링 실수는 다른 노드 집행자에서 실행중인 노드에서 계속 될 것입니다. 집행자는 두 가지 핵심 기능이 있습니다 :
- 스파크는 작업 응용 프로그램의 구성을 실행에 대한 책임, 그리고 드라이버 (드라이버)로 결과를 반환
- 그들은 자신의 블록 관리자를 통해 메모리 스토리지를 제공 (블록 관리자) 프로그램은 사용자의 캐시 RDD을 필요로한다. RDD 캐시 집행자의 과정에서 바로 작업이 컴퓨팅 가속 런타임에 데이터를 캐싱을 활용할 수 있습니다.
1.5 응용 프로그램
사용자 API 스파크가 작성된 응용 프로그램을 제공
- 응용 프로그램 구성 및 드라이버 클러스터 관리자에 의해 DAG RDD 점화 API, 응용 프로그램에 의해 변환 및 등록됩니다.
- 클러스터 관리자 응용 프로그램은 자원 요구 사항에 따라되며, 패스 배포를 통해 응용 프로그램에 집행 인, 메모리, CPU 및 기타 리소스를 할당합니다.
- 보조 할당을 통해 드라이버 집행 인 및 기타 자원이 각 작업에 할당됩니다, 응용 프로그램 집행 인은 마지막으로 드라이버에서 작업을 실행했다
2, 실행중인 프로세스의 일반적인 개요 불꽃
스파크 일반적인 절차를 운영, 스파크 배포 모드, 다음과 같은 핵심 단계에서 작업하는 것에 상관없이 :
- 작업 제출 후, 먼저 드라이버 프로그램을 시작합니다
- 클러스터 관리자에 후 드라이버 등록 신청
- 클러스터 관리자는 구성 파일의 작업에 따라 집행 인을 지정하고 응용 프로그램을 시작
- 모든 자원이 충족 드라이버에 필요한 경우 실행 단계에 따라 작업 운영자 중성자 분할, 예측 역 시작할 때, 드라이버의 주요 기능은 스파크 게으른 실행을 변환, 실행을 시작 의존성 폭, 각 스테이지 taskset에 해당하는, TaskSet 여러 작업을
- 현지화의 원칙에 따라, 작업은 작업 실행 중에 수행 할 수있는 지정 집행자로 배포됩니다, 집행자는 보고서 작업의 운영 및 드라이버를 전달하는 것