Dataproc Hub는 맞춤설정된 JupyterHub 서버입니다. 관리자는 Jupyter 및 JupyterLab 노트북 환경을 호스팅하는 단일 사용자 Managed Service for Apache Spark 클러스터를 생성할 수 있는 Dataproc 허브 인스턴스를 구성하고 만듭니다 (Dataproc 허브 사용 참고).
여러 사용자를 위해 Notebooks 실행. Managed Service for Apache Spark가 사용 설정된 Vertex AI Workbench 인스턴스를 만들거나 VM에 Managed Service for Apache Spark JupyterLab 플러그인을 설치하여 여러 사용자에게 노트북을 제공할 수 있습니다.
목표
Apache Spark용 관리형 서비스 클러스터 구성을 정의하거나 사전 정의된 구성 파일 중 하나를 사용합니다.
Dataproc 허브 인스턴스 환경 변수를 설정합니다.
Dataproc 허브 인스턴스를 만듭니다.
시작하기 전에
아직 만들지 않았다면 Google Cloud 프로젝트와 Cloud Storage 버킷을 만듭니다.
프로젝트 설정
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init
이 튜토리얼에서 사용되는 데이터를 보관하기 위한 프로젝트 내 Cloud Storage 버킷 만들기
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
- 만들기를 클릭합니다.
- 버킷 만들기 페이지에서 버킷 정보를 입력합니다. 다음 단계로 이동하려면 계속을 클릭합니다.
-
시작하기 섹션에서 다음을 수행합니다.
- 버킷 이름 요구사항을 충족하는 전역적으로 고유한 이름을 입력합니다.
- 버킷 라벨을 추가하려면 라벨 섹션 ()을 펼치고 add_box
라벨 추가를 클릭한 다음 라벨에
key및value를 지정합니다.
-
데이터 저장 위치 선택 섹션에서 다음을 수행합니다.
- 위치 유형을 선택합니다.
- 위치 유형 드롭다운 메뉴에서 버킷의 데이터가 영구적으로 저장될 위치를 선택합니다.
- 버킷 간 복제를 설정하려면 Storage Transfer Service를 통해 버킷 간 복제 추가를 선택하고 다음 단계를 따르세요.
버킷 간 복제 설정
- 버킷 메뉴에서 버킷을 선택합니다.
복제 설정 섹션에서 구성을 클릭하여 복제 작업의 설정을 구성합니다.
버킷 간 복제 구성 창이 표시됩니다.
- 객체 이름 프리픽스를 기준으로 복제할 객체를 필터링하려면 객체를 포함하거나 제외할 프리픽스를 입력한 다음 프리픽스 추가를 클릭합니다.
- 복제된 객체의 스토리지 클래스를 설정하려면 스토리지 클래스 메뉴에서 스토리지 클래스를 선택합니다. 이 단계를 건너뛰면 복제된 객체가 기본적으로 대상 버킷의 스토리지 클래스를 사용합니다.
- 완료를 클릭합니다.
-
데이터 저장 방법 선택 섹션에서 다음을 수행합니다.
- 버킷의 기본 스토리지 클래스를 선택하거나 버킷 데이터의 자동 스토리지 클래스 관리에서 자동 클래스를 선택합니다.
- 계층적 네임스페이스를 사용 설정하려면 데이터 집약적인 워크로드에 맞게 스토리지 최적화 섹션에서 이 버킷에서 계층적 네임스페이스 사용 설정을 선택합니다.
- 객체 액세스를 제어하는 방식 선택 섹션에서 버킷이 공개 액세스 방지를 적용할지 여부를 선택하고 버킷의 객체에 대한 액세스 제어 방법을 선택합니다.
-
객체 데이터 보호 방법 선택 섹션에서 다음을 수행합니다.
- 버킷에 설정할 데이터 보호 아래의 옵션을 선택합니다.
- 객체 데이터가 암호화되는 방식을 선택하려면 데이터 암호화 섹션 ()을 펼치고 데이터 암호화 방법을 선택합니다.
-
시작하기 섹션에서 다음을 수행합니다.
- 만들기를 클릭합니다.
클러스터 구성 정의
Dataproc Hub 인스턴스는 YAML 클러스터 구성 파일에 포함된 구성 값으로 클러스터를 만듭니다.
클러스터 구성은 Apache Spark용 관리형 서비스 클러스터에 사용할 수 있는 모든 기능 또는 구성요소 (예: 머신 유형, 초기화 작업, 선택적 구성요소)를 지정할 수 있습니다. 클러스터 이미지 버전이 1.4.13 이상이어야 합니다. 이미지 버전이 1.4.13 미만인 클러스터를 생성하려고 하면 오류가 발생하고 실패합니다.
샘플 YAML 클러스터 구성 파일
clusterName: cluster-name
config:
softwareConfig:
imageVersion: 2.2-ubuntu22
optionalComponents:
- JUPYTER
각 구성을 Cloud Storage에 저장해야 합니다. 여러 구성 파일을 만들고 저장하여 Dataproc Hub 사용 시 사용자에게 Managed Service for Apache Spark 클러스터 노트북 환경을 만들 수 있는 선택권을 부여할 수 있습니다.
YAML 클러스터 구성 파일을 만드는 방법은 두 가지가 있습니다.
콘솔에서 YAML 클러스터 구성 파일 만들기
- Google Cloud 콘솔에서 클러스터 만들기 페이지를 열고 필드를 선택하고 작성하여 Dataproc Hub가 사용자에게 생성할 클러스터 유형을 지정합니다.
- 왼쪽 패널 하단에서 '동등한 REST'를 선택합니다.
- 선행 POST 요청 행을 제외하고 생성된 JSON 블록을 복사한 다음 온라인 JSON-YAML 변환기에 붙여넣습니다('JSON을 YAML로 변환' 온라인 검색).
- 변환된 YAML을 로컬 cluster-config-filename.yaml 파일에 복사합니다.
기존 클러스터에서 YAML 클러스터 구성 파일 내보내기
- 요구사항과 일치하는 클러스터를 만듭니다.
- 클러스터 구성을 로컬 cluster-config-filename.yaml 파일로 내보냅니다.
gcloud dataproc clusters export cluster-name \ --destination cluster-config-filename.yaml \ --region region
Cloud Storage에 YAML 구성 파일 저장
로컬 YAML 클러스터 구성 파일을 Cloud Storage 버킷에 복사합니다.
gcloud storage cp cluster-config-filename.yaml gs://bucket-name/
Dataproc Hub 인스턴스 환경 변수 설정
관리자는 아래 표에 나열된 허브 환경 변수를 설정하여 허브 사용자가 생성할 Managed Service for Apache Spark 클러스터의 속성을 설정할 수 있습니다.
| 변수 | 설명 | 예 |
|---|---|---|
| NOTEBOOKS_LOCATION | 사용자 노트북이 포함된 Cloud Storage 버킷 또는 버킷 폴더입니다. `gs://` 프리픽스는 선택사항입니다. 기본값: Apache Spark용 관리형 서비스 스테이징 버킷입니다. | gs://bucket-name/ |
| DATAPROC_CONFIGS | 쉼표로 구분된 YAML 클러스터 구성 파일의 Cloud Storage 경로 문자열 목록입니다. 'gs://' 프리픽스는 선택사항입니다. 기본값: gs://dataproc-spawner-dist/example-configs/. 여기에는 사전 정의된 example-cluster.yaml 및 example-single-node.yaml이 포함됩니다.
|
gs://cluster-config-filename.yaml |
| DATAPROC_LOCATIONS_LIST | Dataproc Hub 인스턴스가 있는 리전의 영역 서픽스입니다. 사용자는 이러한 영역 중 하나를 Managed Service for Apache Spark 클러스터가 생성되는 영역으로 선택할 수 있습니다. 기본값: 'b'. | b, c, d |
| DATAPROC_DEFAULT_SUBNET | Dataproc Hub 인스턴스가 Managed Service for Apache Spark 클러스터를 생성할 서브넷입니다. 기본값: Dataproc Hub 인스턴스 서브넷입니다. | https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name |
| DATAPROC_SERVICE_ACCOUNT | Apache Spark용 관리형 서비스 VM이 실행될 서비스 계정입니다. 기본값: 설정하지 않으면 Apache Spark용 관리 서비스의 기본 서비스 계정이 사용됩니다. | service-account@project-id.iam.gserviceaccount.com |
| SPAWNER_DEFAULT_URL | 기본적으로 생성된 Apache Spark용 관리 서비스 클러스터에 Jupyter 또는 JupyterLab UI를 표시할지 여부입니다. 기본값: '/lab'. | Jupyter 또는 JupyterLab의 경우 각각 `/` 또는 `/lab`입니다. |
| DATAPROC_ALLOW_CUSTOM_CLUSTERS | 사용자가 Managed Service for Apache Spark 클러스터를 맞춤설정할 수 있는지 여부입니다. 기본값: false. | 'true' 또는 'false' |
| DATAPROC_MACHINE_TYPES_LIST | 클러스터 맞춤설정(DATAPROC_ALLOW_CUSTOM_CLUSTERS)이 사용 설정된 경우 사용자가 생성된 Apache Spark용 관리 서비스 클러스터에 대해 선택할 수 있는 머신 유형 목록입니다. 기본값: 비어 있습니다(모든 머신 유형 허용). | n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4 |
| NOTEBOOKS_EXAMPLES_LOCATION | 클러스터가 시작될 때 생성된 Managed Service for Apache Spark 클러스터에 다운로드할 노트북 버킷 또는 버킷 폴더의 Cloud Storage 경로입니다. 기본값: 비어 있음 | gs://bucket-name/ |
허브 환경 변수 설정
허브 환경 변수를 설정하는 방법에는 두 가지가 있습니다.
콘솔에서 허브 환경 변수 설정
Google Cloud 콘솔의 Dataproc→Workbench 페이지에 있는 사용자 관리형 노트북 탭에서 Dataproc Hub 인스턴스를 만들 때는 채우기 버튼을 클릭하여 각 환경 변수를 설정할 수 있게 해주는 Dataproc Hub 채우기 양식을 열 수 있습니다.
텍스트 파일에 허브 환경 변수 설정
파일을 생성합니다. 텍스트 편집기를 사용하여 로컬 파일에 Dataproc Hub 인스턴스 환경 변수를 설정할 수 있습니다. 또는 자리표시자 값을 입력하고 변수 및 해당 값을 변경하거나 추가한 후에 다음 명령어를 실행하여 파일을 만들 수 있습니다.
cat <<EOF > environment-variables-file DATAPROC_CONFIGS=gs://bucket/cluster-config-filename.yaml NOTEBOOKS_LOCATION=gs://bucket/notebooks DATAPROC_LOCATIONS_LIST=b,c EOF
Cloud Storage에 파일을 저장합니다. 로컬 Dataproc Hub 인스턴스 환경 변수 파일을 Cloud Storage 버킷에 복사합니다.
gcloud storage cp environment-variable-filename gs://bucket-name/folder-name/
Identity and Access Management(IAM) 역할 설정
Dataproc Hub에는 아래와 같은 기능이 있는 다음 ID가 포함됩니다.
- 관리자: Dataproc Hub 인스턴스 만들기
- 데이터 및 ML 사용자: Dataproc Hub UI 액세스
- Dataproc Hub 서비스 계정: Dataproc Hub를 나타냅니다.
- Apache Spark용 관리형 서비스 서비스 계정: Dataproc Hub가 만드는 Apache Spark용 관리형 서비스 클러스터를 나타냅니다.
각 ID에 연관된 태스크를 수행하려면 특정 역할 또는 권한이 필요합니다. 아래 표에는 각 ID에 필요한 IAM 역할 및 권한이 요약되어 있습니다.
| ID | 유형 | 역할 또는 권한 |
|---|---|---|
| Dataproc Hub 관리자 | 사용자 또는 서비스 계정 | roles/notebooks.admin |
| Dataproc Hub 사용자 | 사용자 | notebooks.instances.use, dataproc.clusters.use |
| Dataproc Hub | 서비스 계정 | roles/dataproc.hubAgent |
| Dataproc | 서비스 계정 | roles/dataproc.worker |
Dataproc Hub 인스턴스 만들기
시작하기 전에: Google Cloud 콘솔에서 Managed Service for Apache Spark Hub 인스턴스를 만들려면 사용자 계정에
compute.instances.create권한이 있어야 합니다. 또한 인스턴스의 서비스 계정 즉, Compute Engine 기본 서비스 계정 또는 IAM 및 관리자 > 서비스 계정에 나열된 사용자 지정된 서비스 계정 (Managed Service for Apache Spark VM 서비스 계정 참고)에iam.serviceAccounts.actAs권한이 있어야 합니다.Google Cloud 콘솔에서 Dataproc→Workbench 페이지로 이동한 다음 사용자 관리형 노트북 탭을 선택합니다.
필터로 사전 선택되지 않았으면 필터 상자를 클릭한 후 **Environment:Dataproc Hub""를 선택합니다.
새 노트북→Dataproc Hub를 클릭합니다.
사용자 관리형 노트북 만들기 페이지에서 다음 정보를 제공합니다.
- 노트북 이름: Dataproc Hub 인스턴스 이름입니다.
- 리전 - Dataproc Hub 인스턴스의 리전을 선택합니다. 이 Dataproc Hub 인스턴스에 의해 생성된 Managed Service for Apache Spark 클러스터도 이 리전에 생성됩니다.
- 영역: 선택한 리전 내의 영역을 선택합니다.
- 환경:
Environment:Dataproc Hub를 선택합니다.Select a script to run after creation(선택사항): 초기화 작업 스크립트 또는 실행 파일을 삽입하거나 찾아보고 선택하여 생성된 Managed Service for Apache Spark 클러스터에서 실행할 수 있습니다.Populate Dataproc Hub (optional): 채우기를 클릭하여 각 허브 환경 변수를 설정할 수 있는 양식을 엽니다(각 변수에 대한 설명은 Dataproc Hub 인스턴스 환경 변수 설정 참조). Apache Spark용 관리형 서비스는 설정되지 않은 환경 변수에 기본값을 사용합니다. 또는 메타데이터key:value쌍을 설정하여 환경 변수를 설정할 수 있습니다(다음 항목 참조).Metadata:- 허브 환경 변수 설정이 포함된 텍스트 파일을 만든 경우(허브 환경 변수 설정) 파일 이름을
key으로 제공하고 파일의gs://bucket-name/folder-name/environment-variable-filenameCloud Storage 위치를value로 제공합니다. Apache Spark용 관리형 서비스는 설정되지 않은 환경 변수에 기본값을 사용합니다.
- 허브 환경 변수 설정이 포함된 텍스트 파일을 만든 경우(허브 환경 변수 설정) 파일 이름을
- 머신 구성:
Machine Type: Compute Engine 머신 유형을 선택합니다.- 다른 머신 구성 옵션을 설정합니다.
- 기타 옵션:
- 디스크, 네트워킹, 권한, 보안, 환경 업그레이드 및 시스템 상태 섹션에서 기본값을 확장하고 설정하거나 대체할 수 있습니다.
- 만들기를 클릭하여 Dataproc Hub 인스턴스를 시작합니다.
Dataproc Hub 인스턴스의 JupyterLab 열기 링크는 인스턴스가 생성된 후에 활성화됩니다. 사용자는 이 링크를 클릭하여 JupyterHub 서버 페이지를 열고 Managed Service for Apache Spark JupyterLab 클러스터를 구성하고 만듭니다 (Dataproc Hub 사용 참고).
삭제
Dataproc Hub 인스턴스 삭제
- Dataproc Hub 인스턴스를 삭제하려면 다음 안내를 따르세요.
gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
버킷 삭제
- 시작하기 전에 단계에서 만든 Cloud Storage 버킷과 그 안에 저장된 데이터 파일을 삭제하는 방법은 다음과 같습니다.
gcloud storage rm gs://${BUCKET_NAME} --recursive