다음을 통해 공유


Microsoft Fabric의 Apache Spark 컴퓨팅이란?

적용 대상: Microsoft Fabric에서 데이터 엔지니어 및 데이터 과학

Microsoft Fabric 데이터 엔지니어 및 데이터 과학 환경은 완전히 관리되는 Apache Spark 컴퓨팅 플랫폼에서 작동합니다. 이 플랫폼은 탁월한 속도와 효율성을 제공하도록 설계되었습니다. 시작 풀을 사용하면 수동 설정 없이도 일반적으로 5~10초 내에 빠른 Apache Spark 세션 초기화를 기대할 수 있습니다. 또한 특정 데이터 엔지니어링 및 데이터 과학 요구 사항에 따라 Apache Spark 풀을 유연하게 사용자 지정할 수 있습니다. 이 플랫폼을 사용하면 최적화되고 맞춤형 분석 환경을 사용할 수 있습니다.

시작 풀 및 사용자 지정 Spark 풀이 있는 Spark 컴퓨팅 플랫폼의 이미지입니다.

시작 풀

시작 풀은 몇 초 내에 Microsoft Fabric 플랫폼에서 Spark를 빠르고 쉽게 사용할 수 있는 방법입니다. Spark가 노드를 설정할 때까지 기다리지 않고 바로 Spark 세션을 사용할 수 있으므로 데이터를 사용하여 더 많은 작업을 수행하고 인사이트를 더 빠르게 얻을 수 있습니다.

시작 풀 구성을 보여 주는 테이블의 이미지입니다.

시작 풀에는 항상 켜지고 요청에 대해 준비된 Apache Spark 클러스터가 있습니다. Spark 작업 요구 사항에 따라 동적으로 확장하는 중간 노드를 사용합니다.

시작 풀의 개략적인 디자인을 보여 주는 다이어그램

또한 시작 풀에는 세션 시작 시간을 늦추지 않고 라이브러리를 신속하게 설치할 수 있는 기본 설정이 있습니다. 그러나 작업 영역 또는 용량 설정에서 추가 사용자 지정 Apache Spark 속성 또는 라이브러리를 사용하려는 경우 Spark에서 노드를 가져오는 데 시간이 더 오래 걸립니다. 청구 및 용량 사용과 관련하여 Notebook 또는 Apache Spark 작업 정의 실행을 시작할 때 용량 소비에 대한 요금이 청구됩니다. 클러스터가 풀에서 유휴 상태인 시간에 대해서는 요금이 청구되지 않습니다.

시작 풀 청구의 개략적인 단계를 보여 주는 다이어그램

예를 들어 시작 풀에 Notebook 작업을 제출하는 경우 Notebook 세션이 활성 상태인 기간 동안만 요금이 청구됩니다. 청구된 시간에는 Spark 컨텍스트를 사용하여 세션을 개인 설정하는 데 걸린 유휴 시간 또는 시간이 포함되지 않습니다.

Spark 풀

Spark 풀은 데이터 분석 작업에 필요한 리소스 종류를 Spark에 알리는 방법입니다. Spark 풀에 이름을 지정하고 노드의 수와 크기(작업을 수행하는 컴퓨터)를 선택할 수 있습니다. 작업량에 따라 노드 수를 조정하는 방법을 Spark에 알릴 수도 있습니다. Spark 풀 만들기는 무료입니다. 풀에서 Spark 작업을 실행한 다음 Spark에서 노드를 설정하는 경우에만 비용을 지불합니다.

세션이 만료된 후 2분 동안 Spark 풀을 사용하지 않으면 Spark 풀의 할당이 취소됩니다. 이 기본 세션 만료 기간은 20분으로 설정되며 원하는 경우 변경할 수 있습니다. 작업 영역 관리자인 경우 작업 영역에 대한 사용자 지정 Spark 풀을 만들고 다른 사용자의 기본 옵션으로 만들 수도 있습니다. 이렇게 하면 Notebook 또는 Spark 작업을 실행할 때마다 시간을 절약하고 새 Spark 풀을 설정하지 않도록 할 수 있습니다. Spark는 Azure에서 노드를 가져와야 하므로 사용자 지정 Spark 풀을 시작하는 데 약 3분이 걸립니다.

최소 노드 수를 1로 설정하여 단일 노드 Spark 풀을 만들 수도 있으므로 드라이버와 실행기는 복원 가능한 HA와 함께 제공되는 단일 노드에서 실행되며 작은 워크로드에 적합합니다.

사용자 지정 Spark 풀에 포함할 수 있는 노드의 크기와 수는 Microsoft Fabric 용량에 따라 달라집니다. 용량은 Azure에서 사용할 수 있는 컴퓨팅 능력의 측정값입니다. 이를 생각하는 한 가지 방법은 두 개의 Apache Spark VCore(Spark의 컴퓨팅 능력 단위)가 하나의 용량 단위와 같다는 것입니다. 예를 들어 패브릭 용량 SKU F64에는 128개의 Spark VCore에 해당하는 64개의 용량 단위가 있습니다. 총 Spark VCore 수가 128을 초과하지 않는 한 이러한 Spark VCore를 사용하여 사용자 지정 Spark 풀에 대해 서로 다른 크기의 노드를 만들 수 있습니다.

Spark 풀은 시작 풀과 같이 요금이 청구됩니다. Notebook 또는 Spark 작업 정의를 실행하기 위해 만든 활성 Spark 세션이 없으면 만든 사용자 지정 Spark 풀에 대한 비용을 지불하지 않습니다. 작업 실행 기간에 대해서만 요금이 청구됩니다. 작업이 완료된 후 클러스터 만들기 및 할당 취소와 같은 단계에 대해서는 요금이 청구되지 않습니다.

사용자 지정 풀 청구의 개략적인 단계를 보여 주는 다이어그램

예를 들어 사용자 지정 Spark 풀에 Notebook 작업을 제출하는 경우 세션이 활성화된 기간 동안만 요금이 청구됩니다. Spark 세션이 중지되거나 만료되면 해당 Notebook 세션에 대한 청구가 중지됩니다. 클라우드에서 클러스터 인스턴스를 획득하는 데 걸린 시간 또는 Spark 컨텍스트를 초기화하는 데 걸린 시간에 대해서는 요금이 부과되지 않습니다.

이전 예제를 기반으로 F64에 대한 가능한 사용자 지정 풀 구성:

패브릭 용량 SKU 용량 단위 Spark VCore 노드 크기 최대 노드 수
F64 64 384 소형 96
F64 64 384 중간 48
F64 64 384 Large 24
F64 64 384 초대형 12
F64 64 384 XX-Large 6

참고 항목

사용자 지정 풀을 만들려면 작업 영역에 대한 관리자 권한이 필요합니다. 또한 Microsoft Fabric 용량 관리자는 작업 영역 관리자가 사용자 지정 Spark 풀의 크기를 조정할 수 있도록 권한을 부여해야 합니다. 자세한 내용은 Fabric에서 사용자 지정 Spark 풀 시작 참조

노드

Apache Spark 풀 인스턴스는 하나의 헤드 노드와 작업자 노드로 구성되며 Spark 인스턴스에서 최소 하나의 노드를 시작할 수 있습니다. 헤드 노드는 Livy, Yarn Resource Manager, Zookeeper 및 Apache Spark 드라이버와 같은 추가 관리 서비스를 실행합니다. 모든 노드는 노드 에이전트 및 Yarn Node Manager와 같은 서비스를 실행합니다. 모든 작업자 노드는 Apache Spark Executor 서비스를 실행합니다.

노드 크기

Spark 풀은 작은 컴퓨팅 노드(4개 vCore 및 32GB 메모리 포함)부터 대형 컴퓨팅 노드(노드당 64개 vCore 및 512GB 메모리 포함)에 이르는 노드 크기로 정의할 수 있습니다. 활성 세션을 다시 시작해야 하지만 풀을 만든 후에 노드 크기를 변경할 수 있습니다.

크기 vCore 메모리
Small 4 32GB
중간 8 64GB
Large 16 128GB
초대형 32 256GB
XX-Large 64 512 GB

Autoscale

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

참고 항목

기본적으로 spark.yarn.executor.decommission.enabled는 true로 설정되므로 사용량이 부족한 노드를 자동으로 종료하여 컴퓨팅 효율성을 최적화할 수 있습니다. 덜 적극적인 축소를 선호하는 경우 이 구성을 false로 설정할 수 있습니다.

동적 할당

동적 할당을 사용하면 태스크가 현재 실행기가 감당할 수 있는 부하를 초과하는 경우 Apache Spark 애플리케이션에서 더 많은 실행기를 요청할 수 있습니다. 또한 작업이 완료되고 Spark 애플리케이션이 유휴 상태로 이동하는 경우 실행기를 해제합니다. 엔터프라이즈 사용자는 Spark 작업 실행 프로세스의 여러 단계에서 크게 다르기 때문에 실행기 구성을 조정하기가 어려운 경우가 많습니다. 이러한 구성은 처리된 데이터의 양에 따라 달라지며, 이는 때때로 변경됩니다. 풀 구성의 일부로 실행기의 동적 할당 옵션을 사용하도록 설정할 수 있습니다. 그러면 Spark 풀에서 사용할 수 있는 노드에 따라 Spark 애플리케이션에 실행기를 자동으로 할당할 수 있습니다.

제출된 모든 Spark 애플리케이션에 대해 동적 할당 옵션을 사용하도록 설정하면 시스템은 최대 노드에 따라 작업 제출 단계 중에 실행기를 예약합니다. 성공적인 자동 크기 조정 시나리오를 지원하기 위해 최대 노드를 지정합니다.