이 문서에서는 Google Cloud CLI 및 Dataproc API에서 세션 템플릿이라고 하는 Managed Service for Apache Spark 대화형 세션 및 런타임 프로필을 만드는 방법을 보여줍니다. 런타임 프로필은 대화형 노트북과 세션을 만드는 데 사용할 수 있는 컴퓨팅 등급 및 실행기 구성과 같은 서버리스 Spark 런타임 설정의 재사용 가능한 집합입니다.
대화형 세션 만들기
Google Cloud CLI 또는 Managed Service for Apache Spark API를 사용하여 Managed Service for Apache Spark 대화형 세션을 만들 수 있습니다.
gcloud
gcloud beta dataproc sessions create spark SESSION_ID 명령어를 사용하여 Managed Service for Apache Spark 대화형 세션을 만들 수 있습니다.
gcloud beta dataproc sessions create spark SESSION_ID \ --location=REGION \ optional flags ...
다음을 바꾸거나 추가합니다.
SESSION_ID: 필수 항목입니다. 세션의 ID입니다.REGION: 필수 항목입니다. 세션을 찾을 수 있는 사용 가능한 Compute Engine 리전--version: 선택사항입니다. 지원되는 Spark 런타임 버전 버전을 지정하지 않으면 기본 Spark 런타임 버전이 사용됩니다.--container-image: 선택사항입니다. 세션에 사용할 커스텀 컨테이너 이미지입니다.--property: 선택사항입니다. 세션의 쉼표로 구분된 Spark 속성 하나 이상입니다.--service-account: 선택사항입니다. 세션에 사용할 서비스 계정입니다. 지정하지 않으면 Compute Engine 기본 서비스 계정이 사용됩니다.--subnet: 선택사항입니다. 세션 리전의 서브넷 이름입니다. 지정하지 않으면 Managed Service for Apache Spark가 세션 리전의default서브넷을 사용합니다. Managed Service for Apache Spark는 서브넷에서 비공개 Google 액세스 (PGA)를 사용 설정합니다. 네트워크 연결 요구사항은 Managed Service for Apache Spark 네트워크 구성을 참조하세요.
REST
Managed Service for Apache Spark sessions.create API 메서드를 사용하여 Managed Service for Apache Spark 대화형 세션을 만들 수 있습니다.
다음 요청 필드를 구성합니다.
name: 필수입니다. 세션 이름입니다.version: 선택사항입니다. 세션에 지원되는 Spark 런타임 버전입니다. 버전을 지정하지 않으면 기본 버전이 사용됩니다.containerImage: 선택사항입니다. 세션에 사용할 커스텀 컨테이너 이미지입니다.properties: 선택사항입니다. 세션 속성 이름과 값의 매핑입니다. 지원되는 속성에 대한 자세한 내용은 Spark 속성을 참조하세요.serviceAccount: 선택사항입니다. 세션을 실행하는 데 사용할 서비스 계정입니다. 지정하지 않으면 Compute Engine 기본 서비스 계정이 사용됩니다.subnetworkUri: 선택사항입니다. 세션 리전의 서브넷 이름입니다. 지정하지 않으면 Managed Service for Apache Spark가 세션 리전의default서브넷을 사용합니다. Managed Service for Apache Spark는 서브넷에서 비공개 Google 액세스 (PGA)를 사용 설정합니다. 네트워크 연결 요구사항은 Managed Service for Apache Spark 네트워크 구성을 참조하세요.
런타임 프로필 만들기
Managed Service for Apache Spark 런타임 프로필 (세션 템플릿이라고도 함)은 Managed Service for Apache Spark 대화형 세션을 만들기 위한 재사용 가능한 구성 설정을 정의합니다. Google Cloud 콘솔, gcloud CLI 또는 Managed Service for Apache Spark API를 사용하여 런타임 프로필을 만들 수 있습니다. gcloud CLI 및 Dataproc API에서 런타임 프로필을 session templates라고 합니다.
콘솔
Google Cloud 콘솔을 사용하여 Managed Service for Apache Spark 런타임 프로필을 만들려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 런타임 프로필 페이지로 이동합니다.
만들기를 클릭합니다.
런타임 프로필 만들기 페이지에서 다음 기본 설정을 구성합니다.
표시 이름: 필수 항목입니다. 런타임 프로필의 표시 이름을 입력하거나 미리 채워진 생성된 이름을 사용합니다. 표시 이름에는 하나 이상의 문자 또는 숫자가 포함되어야 하며 Spark Connect를 포함한 모든 세션 유형의 최상위 표시 이름으로 저장됩니다. 런타임 프로필 이름은 리소스 ID이며, 문자를 소문자로 변환하고 잘못된 문자를 하이픈으로 변환하여 표시 이름에서 자동으로 파생되며 필드 아래에 힌트로 표시됩니다. 표시 이름과 별도로 리소스 ID를 맞춤설정하려면 추가 구성을 펼치고 런타임 구성을 수정합니다.
리전: 필수. 이 런타임 프로필을 사용하는 세션에 사용 가능한 Compute Engine 리전을 선택합니다. 기본 리전은
us-east4(이전의us-central1)이며 목록에 리전 설명이 표시됩니다.설명: 선택사항입니다. 런타임 프로필을 식별하는 데 도움이 되는 설명을 입력합니다.
등급: 워크로드 실행을 위한 Managed Service for Apache Spark 등급을 선택합니다.
프리미엄: 기본값입니다. 가속 엔진을 사용하여 복잡하거나 지연 시간에 민감한 쿼리를 최적화하고 고용량 메모리 및 GPU 가속 실행자 형태를 지원합니다. 프리미엄을 선택하면 Lightning Engine을 사용 설정하여 성능 가속화 체크박스가 표시되고 기본적으로 선택되어 Lightning Engine으로 Spark 작업을 가속화합니다. 그러면
spark.dataproc.engine=lightningEngine이 설정됩니다.표준: 일상적인 데이터 처리를 위한 표준 Spark 실행 환경을 제공합니다. 대화형 세션은 항상 프리미엄 등급에서 실행됩니다. 표준을 선택하면 일괄 실행에만 영향을 미칩니다. 스탠더드를 선택하면 Lightning Engine이 사용 중지되고 머신 형태가 표준 CPU 형태 (
standard-4,standard-8또는standard-16)로 제한되며HDD (standard)디스크가 필요합니다. 프리미엄에서 표준으로 전환하면 높은 메모리 또는 GPU 형태가standard-4로 재설정되고 SSD 디스크가200 GiBHDD로 재설정됩니다.
실행자 구성: 워크로드를 실행하는 Spark 실행자 및 드라이버의 컴퓨팅 크기 조정 모드와 머신 형태를 선택합니다.
일반: 기본값입니다. 일반 추출, 변환, 로드 (ETL) 워크로드에 적합한 CPU 전용 머신 구성을 제공합니다. 실행자 유형 목록에서 고성능 메모리 형태를 선택합니다. 예를 들어 vCPU 4개 및 메모리 32GB가 있는
highmem-4(기본값), vCPU 8개 및 메모리 64GB가 있는highmem-8, vCPU 16개 및 메모리 128GB가 있는highmem-16를 선택하거나 표준 형태를 선택합니다. 예를 들어 vCPU 4개 및 메모리 16GB가 있는standard-4, vCPU 8개 및 메모리 32GB가 있는standard-8, vCPU 16개 및 메모리 64GB가 있는standard-16를 선택합니다. 높은 메모리 형태는 프리미엄 등급에서만 사용할 수 있습니다.가속: 데이터 과학 및 AI 또는 ML 학습 및 추론 워크로드에 적합한 GPU 연결 머신 형태를 제공합니다. 가속 형태를 선택하면 등급이 프리미엄으로, 디스크 등급이 SSD (프리미엄)로 자동 전환되며 기본 크기는
375 GiB입니다. 실행자 유형 목록에서 vCPU가 4, 8, 12, 16, 24, 48 또는 96개인 L4 형태를 선택하거나A100 40GB (12 vCPU)또는A100 80GB (12 vCPU)와 같은 A100 형태를 선택합니다.
선택사항: 고급 런타임, 컴퓨팅, 자동 확장, metastore, 네트워크, 보안, 수명 주기 또는 속성 설정을 맞춤설정하려면 추가 구성을 클릭하여 패널을 펼칩니다. 맞춤설정하려는 카테고리 옆에 있는 수정을 클릭하고 창에서 설정을 구성한 후 저장을 클릭합니다.
런타임 구성: 런타임 식별자, Spark 버전, 컨테이너 이미지, 스테이징 버킷, Python 패키지 저장소를 구성합니다.
런타임 프로필 이름: 필수 항목입니다. 표시 이름에서 파생된 생성된 리소스 ID를 수락하거나 커스텀 ID를 입력합니다. ID는 4~63자(영문 기준)여야 하며 소문자, 숫자, 하이픈만 포함하고 소문자 또는 숫자로 시작하고 끝나야 하며 런타임 프로필을 만든 후에는 변경할 수 없습니다.
Spark 런타임 버전: 필수 항목입니다. 지원되는 Managed Service for Apache Spark 런타임 버전을 선택합니다.
커스텀 Spark 이미지: (선택사항) 커스텀 Java 또는 Python 종속 항목이 포함된 커스텀 컨테이너 이미지의 Artifact Registry 또는 Container Registry URI를 입력합니다.
스테이징 버킷: 선택사항. 찾아보기를 클릭하여 워크로드 종속 항목, 작업 드라이버 출력, 구성 파일을 저장할 Cloud Storage 스테이징 버킷을 선택하거나 만듭니다. 비워두면 Managed Service for Apache Spark가 스테이징 버킷을 자동으로 관리합니다 (요약에서
Auto로 표시됨).Python 패키지 저장소: 선택사항입니다. 커스텀 저장소의 URI(예:
https://pypi.org/simple)를 입력하여 Python 패키지를 설치합니다. 비워두면 Google 관리 PyPI 풀스루 캐시 (기본 요약)에서 패키지가 설치됩니다.
실행기 및 드라이버 구성: 컴퓨팅 등급, 디스크 등급, 디스크 크기, 별도의 드라이버 구성을 맞춤설정합니다.
등급: 선택사항인 Lightning Engine을 사용 설정하여 성능 가속화 체크박스가 포함된 프리미엄 또는 표준을 선택합니다.
실행기 유형: 일반
High memory또는Standard머신 형태 또는 가속L4또는A100머신 형태를 선택합니다.디스크 등급:
HDD (standard)또는SSD (premium)를 선택합니다.HDD (standard)는 CPU 형태의 기본값이며 표준 등급에 필요합니다.SSD (premium)는 셔플 또는 스필이 많은 워크로드의 경우 프리미엄 등급에서 사용할 수 있으며 가속 GPU 형태에 필요합니다.디스크 크기: 디스크 크기(GiB)를 선택합니다.
HDD (standard)는200 GiB~1500 GiB를 100GiB 단위로 지원하며 기본값은200 GiB입니다.SSD (premium)는375 GiB,750 GiB또는1500 GiB를 지원하며 기본값은375 GiB입니다.드라이버에 다른 구성 사용: 선택사항입니다. 기본적으로 드라이버는 실행자와 동일한 머신 형태 및 디스크 구성을 사용합니다. 드라이버 머신 유형, 드라이버 디스크 등급, 드라이버 디스크 크기를 독립적으로 맞춤설정하려면 이 체크박스를 선택합니다.
자동 확장: 워크로드 수요에 따라 실행자를 확장하도록 동적 리소스 할당을 구성합니다.
사용 설정됨: 기본적으로 선택되며
spark.dynamicAllocation.enabled를 설정합니다. 자동 확장을 사용 중지하려면 이 체크박스를 선택 해제합니다.초기 실행자 수: 초기 실행자 수를 입력하여
spark.dynamicAllocation.initialExecutors를 설정합니다. 기본값은5입니다. 유효한 값의 범위는 런타임 버전2.3이하의 경우2~2000이고, 런타임 버전3.0이상의 경우0~2000입니다.최소 실행자 수: 최소 실행자 수를 입력하여
spark.dynamicAllocation.minExecutors를 설정합니다. 기본값은 런타임 버전2.3이하의 경우2이고 런타임 버전3.0이상의 경우0이며 상한은2000입니다.최대 실행자 수: 최대 실행자 수를 입력하여
spark.dynamicAllocation.maxExecutors를 설정합니다. 기본값은1000이고 허용되는 최대 한도는2000입니다.
Metastore 구성: 데이터 세트 메타데이터를 관리하는 metastore를 선택합니다.
Lakehouse 런타임 카탈로그: 기본값 현재 프로젝트에서 서버리스 Lakehouse 런타임 카탈로그를 사용하며, Iceberg REST 엔드포인트가 기본적으로 사용 설정되어 있습니다. 프로젝트 ID를 지정하고 기존 카탈로그 ID를 선택하거나 새 카탈로그를 정의할 수 있습니다. Hive 엔드포인트 체크박스를 선택하여 Hive 엔드포인트 프로젝트 ID, 카탈로그 ID, 카탈로그 이름을 지정할 수도 있습니다.
Dataproc Metastore: 관리형 Dataproc Metastore Hive Metastore (HMS) 인스턴스를 연결합니다. 선택한 프로젝트에서 프로젝트를 선택하고 Metastore 서비스 목록에서 서비스 인스턴스를 선택합니다.
없음: 이 런타임 프로필을 사용하는 세션의 metastore 통합을 사용 중지합니다.
네트워크 및 보안: VPC 네트워킹, 실행 사용자 인증 정보, 암호화 키를 구성합니다.
클러스터 연결: 네트워크 구성에서 Google Cloud 콘솔은 선택한 리전에서 적합한 네트워크 또는 서브네트워크를 자동으로 선택합니다. 선택한 리전에 사용 가능한 기본 네트워크가 없으면 추가 구성이 자동으로 열리고 기본 네트워크를 사용할 수 없다는 경고가 표시됩니다. 이 경우 네트워크 구성을 클릭하고 사용 가능한 서브네트워크를 선택할 때까지 만들기 버튼이 사용 중지된 상태로 유지됩니다. 이 프로젝트의 네트워크를 선택하여 현재 프로젝트에서 기본 네트워크 및 서브네트워크를 선택하거나 호스트 프로젝트에서 공유된 네트워크를 선택하여 공유 VPC 서브네트워크를 선택할 수 있습니다. 선택한 서브네트워크에 비공개 Google 액세스 (PGA)가 사용 설정되어 있어야 합니다. 네트워크 연결 요구사항은 서브넷 연결 열기를 참조하세요. 선택사항인 네트워크 태그를 입력하여 워크로드 VM에 방화벽 규칙 및 경로를 적용할 수도 있습니다.
노트북 실행: 기본값인 사용자 계정을 선택하여 최종 사용자 인증 정보를 사용하여 노트북을 실행하거나 서비스 계정을 선택하여 커스텀 서비스 계정으로 세션을 실행합니다. 서비스 계정을 선택하면 서비스 계정 필드에 서비스 계정을 지정해야 합니다.
암호화: 기본값인 Google-owned and Google-managed encryption key를 선택하거나 Cloud KMS 키를 선택하여 고객 관리 암호화 키 (CMEK)를 사용하여 워크로드 데이터를 암호화합니다.
세션 수명 주기: 자동 세션 종료 한도를 구성합니다.
최대 유휴 시간: (선택사항) 최대 유휴 시간 수량을 입력하고
seconds,minutes,hours또는days에서 최대 유휴 시간 단위를 10분에서 330시간까지 선택하여 노트북 세션이 자동으로 종료되기 전에 유휴 상태로 유지될 수 있는 시간을 지정합니다.최대 세션 시간: 선택사항. 최대 세션 시간 수량을 입력하고
seconds,minutes,hours또는days에서 최대 세션 시간 단위를 10분에서 330시간 사이로 선택하여 세션의 최대 수명을 지정합니다.
기타 맞춤설정: 커스텀 Spark 속성 및 리소스 라벨을 추가합니다.
Spark 속성: 선택사항. 속성 추가를 클릭하고 커스텀 Spark 속성의 키 및 값 쌍을 입력합니다. 양식의 전용 필드 (예: 컴퓨팅 등급, 실행자 및 드라이버 크기, Lightning Engine,
spark.dynamicAllocation.*, Lakehouse 카탈로그 속성)로 제어되는 속성은 해당 필드에서 관리되며 자유 형식 목록에서 숨겨집니다. Google Cloud 콘솔에서spark:프리픽스를 포함하지 마세요.라벨: (선택사항) 라벨 추가를 클릭하고 키 및 값 쌍을 입력하여 런타임 프로필에 라벨을 연결합니다.
페이지 오른쪽에 있는 요약 카드에서 구성 세부정보를 검토하고 가격 추정치 카드에서 예상 데이터 컴퓨팅 단위 (DCU) 사용량을 검토합니다. DCU 요금에 대한 자세한 내용은 Managed Service for Apache Spark 가격 책정을 참조하세요.
만들기를 클릭합니다.
gcloud
gcloud CLI에서 런타임 프로필은 세션 템플릿으로 관리됩니다.
gcloud CLI에서 create 명령어를 사용하여 Managed Service for Apache Spark 런타임 프로필을 직접 만들 수는 없지만 gcloud beta dataproc session-templates import 명령어를 사용하여 YAML 구성 파일에서 런타임 프로필을 만들거나 업데이트할 수 있습니다.
gcloud beta dataproc session-templates export 명령어를 사용하여 기존 런타임 프로필을 내보낼 수도 있습니다.
REST
Managed Service for Apache Spark API에서 런타임 프로필은 SessionTemplate 리소스로 표현됩니다. Managed Service for Apache Spark sessionTemplates.create API 메서드를 사용하여 Managed Service for Apache Spark 런타임 프로필을 만들 수 있습니다. 다음 요청 필드를 구성합니다.
name: 필수입니다. 런타임 프로필의 리소스 이름입니다.version: 선택사항입니다. 세션에 지원되는 Spark 런타임 버전입니다. 버전을 지정하지 않으면 기본 버전이 사용됩니다.sessionConfig:jupyterSession또는sparkConnectSession를 지정합니다.jupyterSession를 지정하는 경우JupyterConfig.displayName및JupyterConfig.kernel필드도 지정합니다. Jupyter 노트북 세션에 대한 자세한 내용은 Managed Service for Apache Spark에서 Jupyter 노트북 실행을 참조하세요.containerImage: 선택사항입니다. 세션에 사용할 커스텀 컨테이너 이미지입니다.properties: 선택사항입니다. 등급, 엔진, 머신 형태, 디스크, 자동 확장 속성을 포함한 Spark 속성 이름과 값의 매핑입니다. 지원되는 속성에 대한 자세한 내용은 Spark 속성을 참조하세요.serviceAccount: 선택사항입니다. 세션을 실행하는 데 사용할 서비스 계정입니다. 지정하지 않으면 Compute Engine 기본 서비스 계정이 사용됩니다.subnetworkUri: 선택사항입니다. 세션 리전의 서브넷 이름입니다. 지정하지 않으면 Managed Service for Apache Spark가 세션 리전의default서브넷을 사용합니다. Managed Service for Apache Spark는 서브넷에서 비공개 Google 액세스 (PGA)를 사용 설정합니다. 네트워크 연결 요구사항은 Managed Service for Apache Spark 네트워크 구성을 참조하세요.