Spark 속성

Dataproc 서버리스는 Spark 속성을 사용하여 일괄 워크로드에 할당할 컴퓨팅, 메모리, 디스크 리소스를 결정합니다. 이러한 속성 설정은 워크로드 할당량 소비와 비용에 영향을 미칠 수 있습니다(자세한 내용은 Dataproc 서버리스 할당량Dataproc 서버리스 가격 책정 참조).

Spark 일괄 워크로드 속성 설정

Google Cloud 콘솔, gcloud CLI 또는 Dataproc API를 사용하여 서버리스 Dataproc Spark 일괄 워크로드를 제출할 때 Spark 속성을 지정할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Dataproc 만들기 배치로 이동 페이지로 이동합니다.

  2. 속성 섹션에서 속성 추가를 클릭하고 Key(이름) 및 지원되는 Spark 속성Value를 입력하세요.

gcloud

gcloud CLI 일괄 제출 예시:

gcloud dataproc batches submit spark
    --properties=spark.checkpoint.compress=true \
    --region=region \
    other args ...

API

batches.create 요청의 일부로 지원되는 Spark 속성을 사용하여 RuntimeConfig.properties를 설정합니다.

지원되는 Spark 속성

Spark용 서버리스 Dataproc은 대부분의 Spark 속성을 지원하지만 spark.master=yarnspark.shuffle.service.enabled와 같은 YARN 관련 및 셔플 관련 Spark 속성은 지원하지 않습니다. Spark 애플리케이션 코드가 YARN 또는 셔플 속성을 설정하면 애플리케이션에 오류가 발생합니다.

런타임 환경 속성

Spark를 위한 서버리스 Dataproc은 런타임 환경을 구성하기 위해 다음과 같은 커스텀 Spark 속성을 지원합니다.

속성 설명
spark.dataproc.driverEnv.EnvironmentVariableName EnvironmentVariableName을 드라이버 프로세스에 추가합니다. 환경 변수 여러 개를 지정할 수 있습니다.

리소스 할당 속성

Spark를 위한 서버리스 Dataproc은 리소스 할당 구성을 위해 다음과 같은 Spark 속성을 지원합니다.

속성 설명 기본
spark.driver.cores Spark 드라이버에 할당할 코어(vCPU) 수입니다. 유효한 값: 4, 8, 16. 4
spark.driver.memory

Spark 드라이버 프로세스에 할당할 메모리 크기이며 크기 단위 서픽스('m', 'g', 또는 't')가 포함된 JVM 메모리 문자열 형식으로 지정됩니다.

드라이버 메모리 오버헤드를 포함하여 드라이버 코어당 총 드라이버 메모리로, 표준 컴퓨팅 등급의 경우 1024m에서 7424m 사이여야 합니다(프리미엄 컴퓨팅 등급의 경우 24576m). 예를 들어 spark.driver.cores = 4이면 4096m <= spark.driver.memory + spark.driver.memoryOverhead <= 29696m입니다.

512m, 2g
spark.driver.memoryOverhead

Spark 드라이버 프로세스에 할당할 추가 JVM 메모리 크기이며 크기 단위 서픽스('m', 'g' 또는 't')가 포함된 JVM 메모리 문자열 형식으로 지정됩니다.

이 메모리는 JVM 오버헤드, 내부 문자열, 기타 기본 오버헤드와 관련된 힙이 아닌 메모리이며 여기에는 PySpark 드라이버 프로세스와 같은 다른 드라이버 프로세스에서 사용하는 메모리와 컨테이너에서 실행되는 비드라이버 프로세스에서 사용하는 메모리가 포함됩니다. 드라이버가 실행되는 컨테이너의 최대 메모리 크기는 spark.driver.memoryOverheadspark.driver.memory의 합계에 따라 결정됩니다.

드라이버 메모리 오버헤드를 포함하여 드라이버 코어당 총 드라이버 메모리는 표준 컴퓨팅 등급의 경우 1024m에서 7424m 사이여야 합니다(프리미엄 컴퓨팅 등급의 경우 24576m). 예를 들어 spark.driver.cores = 4이면 4096m <= spark.driver.memory + spark.driver.memoryOverhead <= 29696m입니다.

드라이버 메모리의 10%(드라이버 메모리의 40%로 기본 지정되는 PySpark 일괄 워크로드는 제외) 512m, 2g
spark.dataproc.driver.compute.tier 드라이버에 사용할 컴퓨팅 등급입니다. 프리미엄 컴퓨팅 등급은 더 높은 코어별 성능을 제공하지만 높은 요율로 청구됩니다. 표준 표준, 프리미엄
spark.dataproc.driver.disk.size 드라이버에 할당된 디스크 공간의 크기로, 크기 단위 서픽스('k', 'm', 'g' 또는 't')로 지정됩니다. 250GiB 이상이어야 합니다. 프리미엄 디스크 등급을 드라이버에서 선택한 경우 적합한 크기는 375g, 750g, 1500g, 3000g, 6000g, 9000g입니다. 코어당 100GiB 1024g, 2t
spark.dataproc.driver.disk.tier 드라이버의 로컬 및 셔플 스토리지에 사용할 디스크 등급입니다. 프리미엄 디스크 등급은 IOPS 및 처리량 측면에서 더 나은 성능을 제공하지만 더 높은 요율로 청구됩니다. 프리미엄 디스크 등급을 드라이버에서 선택한 경우 spark.dataproc.driver.compute.tier=premium을 사용해서 프리미엄 컴퓨팅 등급을 선택하고 spark.dataproc.executor.disk.size를 사용해서 디스크 공간 크기를 지정해야 합니다.

프리미엄 디스크 등급을 선택하면 드라이버가 시스템 스토리지에 50GiB의 디스크 공간을 추가로 할당하며, 사용자 애플리케이션은 이 공간을 사용할 수 없습니다.

standard 표준, 프리미엄
spark.executor.cores 각 Spark 실행자에 할당할 코어(vCPU) 수입니다. 유효한 값: 4, 8, 16. 4
spark.executor.memory

각 Spark 실행자 프로세스에 할당할 메모리 크기이며 크기 단위 서픽스('m', 'g', 또는 't')가 포함된 JVM 메모리 문자열 형식으로 지정됩니다.

실행자 메모리 오버헤드를 포함한 실행자 코어당 총 실행자 메모리는 표준 컴퓨팅 등급의 경우 1024m에서 7424m 사이여야 합니다(프리미엄 컴퓨팅 등급의 경우 24576m). 예를 들어 spark.executor.cores = 4이면 4096m <= spark.executor.memory + spark.executor.memoryOverhead <= 29696m입니다.

512m, 2g
spark.executor.memoryOverhead

Spark 실행자 프로세스에 할당할 추가 JVM 메모리 크기이며 크기 단위 서픽스('m', 'g' 또는 't')가 포함된 JVM 메모리 문자열 형식으로 지정됩니다.

이 메모리는 JVM 오버헤드, 내부 문자열, 기타 기본 오버헤드에 사용되는 힙이 아닌 메모리이며 여기에는 컨테이너에서 실행되는 다른 비실행자 프로세스에서 사용하는 메모리와 PySpark 실행자 메모리가 포함됩니다. 실행자가 실행되는 컨테이너의 최대 메모리 크기는 spark.executor.memoryOverheadspark.executor.memory의 합계에 따라 결정됩니다.

실행자 메모리 오버헤드를 포함한 실행자 코어당 총 실행자 메모리는 표준 컴퓨팅 등급의 경우 1024m에서 7424m 사이여야 합니다(프리미엄 컴퓨팅 등급의 경우 24576m). 예를 들어 spark.executor.cores = 4이면 4096m <= spark.executor.memory + spark.executor.memoryOverhead <= 29696m입니다.

실행자 메모리의 10%(실행자 메모리의 40%로 기본 지정되는 PySpark 일괄 워크로드 제외) 512m, 2g
spark.dataproc.executor.compute.tier 실행자에 사용할 컴퓨팅 등급입니다. 프리미엄 컴퓨팅 등급은 더 높은 코어별 성능을 제공하지만 높은 요율로 청구됩니다. 표준 표준, 프리미엄
spark.dataproc.executor.disk.size 각 실행자에 할당된 디스크 공간의 크기로, 크기 단위 서픽스('k', 'm', 'g' 또는 't')로 지정됩니다. 실행자 디스크 공간은 데이터를 셔플하고 종속 항목을 스테이징하는 데 사용될 수 있습니다. 250GiB 이상이어야 합니다. 실행자에서 프리미엄 디스크 등급을 선택한 경우 적합한 크기는 375g, 750g, 1500g, 3000g, 6000g, 9000g입니다. 코어당 100GiB 1024g, 2t
spark.dataproc.executor.disk.tier 실행자의 로컬 및 셔플 스토리지에 사용할 디스크 등급입니다. 프리미엄 디스크 등급은 IOPS 및 처리량 측면에서 더 나은 성능을 제공하지만 더 높은 요율로 청구됩니다. 실행자에서 프리미엄 디스크 등급을 선택한 경우 spark.dataproc.executor.compute.tier=premium을 사용하여 프리미엄 컴퓨팅 등급을 선택하고 spark.dataproc.executor.disk.size를 사용하여 디스크 공간 크기를 지정해야 합니다.

프리미엄 디스크 등급을 선택하면 각 실행자에게 시스템 스토리지용으로 50GiB의 디스크 공간이 추가로 할당되며, 사용자 애플리케이션은 이 공간을 사용할 수 없습니다.

standard 표준, 프리미엄
spark.executor.instances 할당할 초기 실행자 수입니다. 일괄 워크로드가 시작되면 자동 확장으로 인해 활성 실행자 수가 변경될 수 있습니다. 최소 2부터 최대 2000 사이여야 합니다.

자동 확장 속성

서버리스 Dataproc 자동 확장을 구성하는 데 사용할 수 있는 Spark 속성 목록은 Spark 동적 할당 속성을 참조하세요.

기타 속성

속성 설명
dataproc.diagnostics.enabled 이 속성을 사용 설정하여 일괄 워크로드 실패 또는 취소에 대한 진단을 실행합니다. 진단이 사용 설정된 경우 워크로드가 완료된 후 일괄 워크로드는 진단이 완료될 때까지 컴퓨팅 리소스를 계속 사용합니다. 진단 tarball의 위치를 가리키는 URI는 Batch.RuntimeInfo.diagnosticOutputUri API 필드에 나열됩니다.
dataproc.gcsConnector.version 이 속성을 사용하여 일괄 워크로드의 런타임 버전으로 설치된 버전과 다른 Cloud Storage 커넥터 버전으로 업그레이드합니다.
dataproc.sparkBqConnector.version 이 속성을 사용하여 배치 워크로드의 런타임 버전으로 설치된 버전과 다른 Spark BigQuery 커넥터 버전으로 업그레이드하세요(Spark를 위한 서버리스 Dataproc로 BigQuery 커넥터 사용 참조).