Share via


Azure Synapse Analytics의 Apache Spark 풀 구성

Spark 풀은 Spark 인스턴스가 인스턴스화될 때 컴퓨팅 리소스 요구 사항 및 관련 동작 특성을 정의하는 메타데이터 집합입니다. 해당 특성은 이름, 노드 수, 노드 크기, 스케일링 동작, TTL(Time to live)을 포함하지만 이에 제한되지 않습니다. Spark 풀 자체는 리소스를 사용하지 않습니다. Spark 풀을 만들 때 발생하는 비용은 없습니다. 대상 Spark 풀에서 Spark 작업이 실행되고 요청 시 Spark 인스턴스가 인스턴스화된 경우에만 요금이 발생합니다.

Synapse Analytics에서 Spark 풀 시작에서 Spark 풀을 만드는 방법과 모든 속성을 확인할 수 있습니다.

격리된 컴퓨팅

격리된 컴퓨팅 옵션은 물리적 컴퓨팅 리소스를 단일 고객에게만 제공하여 신뢰할 수 없는 서비스에서 제공되는 Spark 컴퓨팅 리소스에 대한 추가 보안을 제공합니다. 격리된 컴퓨팅 옵션은 규정 준수 및 규정 요구 사항 충족 등의 이유로 다른 고객의 워크로드로부터 높은 수준의 격리가 필요한 워크로드에 가장 적합합니다. 격리된 컴퓨팅 옵션은 XXXLarge(80 vCPU/504GB) 노드 크기에서만 사용할 수 있으며 다음 지역에서만 사용할 수 있습니다. 인스턴스를 다시 시작해야 할 수도 있지만 풀을 만든 후에 격리된 컴퓨팅 옵션을 사용하거나 사용하지 않도록 설정할 수 있습니다. 나중에 이 기능을 사용하도록 설정하려는 경우 Synapse 작업 영역이 격리된 컴퓨팅 지원 지역에 만들어졌는지 확인합니다.

  • 미국 동부
  • 미국 서부 2
  • 미국 중남부
  • US Gov 애리조나
  • US Gov 버지니아

노드

Apache Spark 풀 인스턴스는 Spark 인스턴스에서 최소 세 개 이상의 노드를 포함하는 하나의 헤드 노드와 둘 이상의 작업자 노드로 구성됩니다. 헤드 노드는 Livy, Yarn Resource Manager, Zookeeper 및 Spark 드라이버와 같은 추가 관리 서비스를 실행합니다. 모든 노드는 노드 에이전트 및 Yarn Node Manager와 같은 서비스를 실행합니다. 모든 작업자 노드는 Spark Executor 서비스를 실행합니다.

노드 크기

Spark 풀은 4개 vCore와 32GB 메모리를 갖춘 Small 컴퓨팅 노드에서 64개 vCore와 노드당 432GB 메모리를 갖춘 XXLarge 컴퓨팅에 이르는 노드 크기로 정의할 수 있습니다. 인스턴스를 다시 시작해야 할 수도 있지만, 풀을 만든 후 노드 크기를 변경할 수 있습니다.

크기 vCore 메모리
Small 4 32GB
중간 8 64GB
Large 16 128GB
XLarge 32 256GB
XXLarge 64 432GB
XXX Large(격리된 컴퓨팅) 80 504GB

Autoscale

Apache Spark 풀의 자동 크기 조정을 사용하면 작업량에 따라 컴퓨팅 리소스를 자동으로 스케일 업 및 스케일 다운할 수 있습니다. 자동 스케일링 기능을 사용하는 경우 스케일링할 노드의 최소 개수 및 최대 개수를 설정합니다. 자동 스케일링 기능을 사용하지 않도록 설정하면 설정된 노드 수가 고정된 상태로 유지됩니다. 이 설정은 인스턴스를 다시 시작해야 할 수도 있지만, 풀을 만든 후에 변경할 수 있습니다.

탄력적 풀 스토리지

Apache Spark 풀은 이제 탄력적 풀 스토리지를 지원합니다. 탄력적 풀 스토리지를 사용하면 Spark 엔진이 작업자 노드 임시 스토리지를 모니터링하고 필요한 경우 추가 디스크를 연결할 수 있습니다. Apache Spark 풀은 풀이 인스턴스화되는 동안 임시 디스크 스토리지를 활용합니다. Spark 작업은 순서 섞기 맵 출력, 순서 섞기 데이터 및 스필된 데이터를 로컬 VM 디스크에 씁니다. 로컬 디스크를 사용할 수 있는 작업의 예는 정렬, 캐시 및 지속입니다. 임시 VM 디스크 공간이 부족하면 "디스크 공간 부족" 오류(java.io.IOException: 디바이스에 공간이 없음)로 인해 Spark 작업이 실패할 수 있습니다. "디스크 공간 부족" 오류로 인해 작업 실패를 방지하는 부담의 대부분은 고객이 Spark 작업을 다시 구성하거나(예: 파티션 수 조정) 클러스터로 이동합니다(예: 클러스터에 노드 추가). 이러한 오류는 일관되지 않을 수 있으며 사용자는 프로덕션 작업을 실행하여 많은 실험을 하게 될 수 있습니다. 이 프로세스는 여러 차원에서 사용자에게 비용이 많이 들 수 있습니다.

  • 시간 낭비 고객은 시행착오를 통해 작업 구성을 많이 실험해야 하며 올바른 결정을 내리기 위해 Spark의 내부 메트릭을 이해해야 합니다.
  • 낭비된 리소스. 프로덕션 작업은 다양한 양의 데이터를 처리할 수 있으므로 리소스가 과도하게 프로비저닝되지 않으면 Spark 작업이 비결정적으로 실패할 수 있습니다. 예를 들어 일부 노드에서 다른 노드보다 더 많은 디스크 공간을 필요로 할 수 있는 데이터 기울이기 문제를 생각해 보겠습니다. 현재 Synapse에서 클러스터의 각 노드는 동일한 크기의 디스크 공간을 가지며 모든 노드에서 디스크 공간을 늘리는 것은 이상적인 솔루션이 아니고 엄청난 낭비를 초래합니다.
  • 작업 실행 속도 저하. 노드의 크기를 자동 조정하여 문제를 해결하는 가상 시나리오에서(비용이 최종 고객에게 문제가 되지 않는다고 가정), 컴퓨팅 노드 추가는 스토리지 추가(몇 초 소요)와 달리 어려운 작업이 됩니다(몇 분 소요).

작업이 필요하지 않으며 결과적으로 작업 실패가 더 적게 표시됩니다.

참고 항목

Azure Synapse Elastic 풀 스토리지는 현재 공개 미리 보기 상태입니다. 공개 미리 보기 중에는 Elastic Pool Storage 사용에 대한 요금이 청구되지 않습니다.

자동 일시 중지

자동 일시 중지 기능은 설정된 유휴 시간이 지나면 리소스 할당을 해제하여 Apache Spark 풀의 총비용을 줄입니다. 이 기능을 사용하도록 설정하면 유휴 시간(분)을 설정할 수 있습니다. 자동 일시 중지 기능은 자동 스케일링 기능과는 독립적입니다. 자동 스케일링을 사용하거나 사용하지 않도록 설정했는지 여부에 관계없이 리소스를 일시 중지할 수 있습니다. 활성 세션을 다시 시작해야 하지만 풀 만들기 후에 이 설정을 변경할 수 있습니다.

다음 단계