스택큐힙리스트

어떻게 아파치 스파크 스케줄러는 파일을 작업으로 분할합니까? 본문

카테고리 없음

어떻게 아파치 스파크 스케줄러는 파일을 작업으로 분할합니까?

스택큐힙리스트 2023. 11. 29. 00:02
반응형

스파크 서밋 2014에서 Aaron은 스파크 내부의 심화 이해에 대한 발표를 진행했습니다. 그의 슬라이드인 17 페이지에서 한 스테이지가 4개의 태스크로 분할되었다는 것을 보여주고 있습니다:

enter


여기서 스테이지가 태스크로 어떻게 분할되는지에 대해 세 가지 사항을 알고 싶습니다.



  1. 위의 예시에서는 파일 번호를 기준으로 태스크 번호가 생성된 것으로 보입니다. 맞나요?


  2. 1번에서 맞다면, 디렉토리에 있는 파일이 3개였다면, 그대로 3개의 태스크가 생성되는 것일까요?


  3. 2번에서 맞다면, 하나의 매우 큰 파일이 있는 경우 어떻게 될까요? 이러한 스테이지는 1개의 태스크로 분할될까요? 그리고 스트리밍 데이터 소스에서 데이터가 들어오는 경우는 어떻게 될까요?



정말로 감사합니다. 스테이지가 어떻게 태스크로 분할되는지에 대해 혼동을 겪고 있습니다.

답변 1

전체 프로세스에 대한 파티션 (분할) 수는 작업의 두 번째 매개변수로 구성할 수 있습니다. 예를 들어, 우리가 3개의 파티션을 원한다면 parallelize에 대해 다음과 같이 설정할 수 있습니다:


a = sc.parallelize(myCollection, 3)

스파크는 작업을 상대적으로 균일한 크기로 나눌 것입니다 (*) . 대형 파일은 그에 맞게 분할될 것이며 실제 크기를 다음과 같이 확인할 수 있습니다:


rdd.partitions.size

따라서 한 파일에 대해 오랜 시간 동안 단일 Worker가 계속 작업하는 일은 없습니다.


(*) 매우 작은 파일이 있다면이 처리가 변경될 수 있습니다. 그러나 어떤 경우에도 대형 파일은 이 패턴을 따를 것입니다.

답변 2

아파치 스파크 스케줄러는 파일을 작업으로 어떻게 분할하는지에 대해 알아보겠습니다.
아파치 스파크는 대량의 데이터를 처리할 수 있는 빠르고 확장 가능한 분산 컴퓨팅 프레임워크입니다. 이 프레임워크는 기본적으로 Hadoop 분산 파일 시스템(HDFS)에서 데이터를 처리하고자 설계되었습니다. 아파치 스파크 스케줄러는 이러한 데이터를 작업으로 나누어 병렬 처리를 가능하게 합니다.
스파크 어플리케이션이 실행될 때, 파일은 기본적으로 여러 개의 파티션으로 나뉘어집니다. 이 파티션은 기본적으로 HDFS의 블록 크기로 정해집니다. HDFS 블록은 대략적으로 128MB에서 256MB 정도의 크기를 가집니다. 따라서 스파크는 파일을 해당 블록 크기에 맞춰 스플릿(split)하여 작업으로 분할합니다.
스파크 스케줄러는 각 작업을 실행할 수 있는 노드를 선택하기 위해 클러스터 매니저와 통신합니다. 클러스터 매니저는 스파크 어플리케이션을 실행하는 노드들에 대한 자원 및 가용성 정보를 가지고 있으며, 스케줄러는 이러한 정보를 기반으로 작업을 스케줄링합니다.
스파크 스케줄러는 데이터 로컬리티를 최대화하기 위해 최선의 노드를 선택합니다. 데이터 로컬리티란 데이터와 작업을 실행하는 노드와의 물리적인 근접성을 의미합니다. 예를 들어, 특정 노드에 있는 파일 파티션은 해당 노드에서 작업을 수행할 수 있으므로, 데이터 전송이 필요하지 않아 더 효율적입니다.
스파크 스케줄러는 데이터 로컬리티를 결정할 때 두 가지 간단한 규칙을 적용합니다. 첫째, HDFS 블록과 노드가 동일한 랙(rack)에 위치해 있다면, 데이터 로컬리티가 최대화된 것으로 간주합니다. 랙은 물리적인 네트워크의 한 부분으로, 블록과 노드가 동일한 랙에 위치하면 데이터 전송 비용이 최소화됩니다. 둘째, HDFS 블록과 노드가 다른 랙에 위치해 있다면, 최대 한 번의 네트워크 전송을 수행하여 데이터를 이동시킵니다.
이렇게 스파크 스케줄러는 파일을 작업으로 분할하고, 데이터 로컬리티에 따라 작업을 스케줄러에게 배치하여 효율적인 데이터 처리를 가능하게 합니다. 아파치 스파크는 대용량 데이터 처리에 뛰어난 성능과 확장성을 제공하므로, 많은 기업과 연구 기관에서 선택해 사용하고 있습니다.

반응형
Comments