Dataproc Hub는 맞춤설정된 JupyterHub 서버입니다. 관리자는 단일 사용자 Dataproc 클러스터를 생성하여 Jupyter 및 JupyterLab 노트북 환경을 호스팅할 수 있는 Dataproc 허브 인스턴스를 구성하고 만듭니다(Dataproc 허브 사용 참조).
여러 사용자를 위해 Notebooks 실행. Dataproc이 사용 설정된 Vertex AI Workbench 인스턴스를 만들거나 VM에 Dataproc JupyterLab 플러그인을 설치하여 여러 사용자에게 노트북을 제공할 수 있습니다.
목표
Dataproc 클러스터 구성을 정의하거나 사전 정의된 구성 파일 중 하나를 사용합니다.
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.
-
Enable the Dataproc, Compute Engine, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc, Compute Engine, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
이 튜토리얼에서 사용되는 데이터를 보관하기 위한 프로젝트 내 Cloud Storage 버킷 만들기
- Google Cloud Console에서 Cloud Storage 버킷 페이지로 이동합니다.
- 버킷 만들기를 클릭합니다.
- 버킷 만들기 페이지에서 버킷 정보를 입력합니다. 다음 단계로 이동하려면 계속을 클릭합니다.
- 버킷 이름 지정에서 버킷 이름 지정 요구사항을 충족하는 이름을 입력합니다.
-
데이터를 저장할 위치 선택에서 다음을 수행합니다.
- 위치 유형 옵션을 선택합니다.
- 위치 옵션을 선택합니다.
- 데이터의 기본 스토리지 클래스 선택에서 스토리지 클래스를 선택합니다.
- 객체 액세스를 제어하는 방식 선택에서 액세스 제어 옵션을 선택합니다.
- 고급 설정(선택사항)에서 암호화 방법, 보관 정책 또는 버킷 라벨을 지정합니다.
- 만들기를 클릭합니다.
클러스터 구성 정의
Dataproc Hub 인스턴스는 YAML 클러스터 구성 파일에 포함된 구성 값으로 클러스터를 만듭니다.
클러스터 구성은 Dataproc 클러스터에 사용할 수 있는 모든 기능 또는 구성요소(예: 머신 유형, 초기화 작업, 선택적 구성요소)를 지정할 수 있습니다. 클러스터 이미지 버전이 1.4.13 이상이어야 합니다. 이미지 버전이 1.4.13 미만인 클러스터를 생성하려고 하면 오류가 발생하고 실패합니다.
샘플 YAML 클러스터 구성 파일
clusterName: cluster-name config: softwareConfig: imageVersion: 2.2-ubuntu22 optionalComponents: - JUPYTER
각 구성을 Cloud Storage에 저장해야 합니다. 여러 구성 파일을 만들고 저장하여 Dataproc Hub 사용 시 사용자에게 Dataproc 클러스터 메모장 환경을 만들 수 있는 선택권을 부여할 수 있습니다.
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 인스턴스 환경 변수 설정
관리자는 아래 표에 나열된 허브 환경 변수를 설정하여 허브 사용자가 생성할 Dataproc 클러스터의 속성을 설정할 수 있습니다.
변수 | 설명 | 예 |
---|---|---|
NOTEBOOKS_LOCATION | 사용자 메모장이 포함된 Cloud Storage 버킷 또는 버킷 폴더입니다. `gs://` 프리픽스는 선택사항입니다. 기본값: Dataproc 스테이징 버킷입니다. | 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 인스턴스가 있는 리전의 영역 서픽스입니다. 사용자는 이러한 영역 중 하나를 Dataproc 클러스터가 생성되는 영역으로 선택할 수 있습니다. 기본값: 'b'. | b, c, d |
DATAPROC_DEFAULT_SUBNET | Dataproc Hub 인스턴스가 Dataproc 클러스터를 생성할 서브넷입니다. 기본값: Dataproc Hub 인스턴스 서브넷입니다. | https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name |
DATAPROC_SERVICE_ACCOUNT | Dataproc VM이 실행될 서비스 계정입니다. 기본값: 설정하지 않으면 기본 Dataproc 서비스 계정이 사용됩니다. | service-account@project-id.iam.gserviceaccount.com |
SPAWNER_DEFAULT_URL | 기본적으로 생성된 Dataproc 클러스터에 Jupyter 또는 JupyterLab UI를 표시할지 여부입니다. 기본값: '/lab'. | Jupyter 또는 JupyterLab의 경우 각각 `/` 또는 `/lab`입니다. |
DATAPROC_ALLOW_CUSTOM_CLUSTERS | 사용자가 Dataproc 클러스터를 맞춤설정할 수 있는지 여부입니다. 기본값: false. | 'true' 또는 'false' |
DATAPROC_MACHINE_TYPES_LIST | 클러스터 맞춤설정(DATAPROC_ALLOW_CUSTOM_CLUSTERS)이 사용 설정된 경우 사용자가 생성된 Dataproc 클러스터에 대해 선택할 수 있는 머신 유형 목록입니다. 기본값: 비어 있습니다(모든 머신 유형 허용). | n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4 |
NOTEBOOKS_EXAMPLES_LOCATION | 클러스터가 시작될 때 생성된 Dataproc 클러스터에 다운로드할 메모장 버킷 또는 버킷 폴더의 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를 나타냅니다.
- Dataproc 서비스 계정: Dataproc Hub가 만드는 Dataproc 클러스터를 나타냅니다.
각 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 콘솔에서 Dataproc Hub 인스턴스를 만들려면 사용자 계정에
compute.instances.create
권한이 있어야 합니다. 또한 인스턴스의 서비스 계정 즉, Compute Engine 기본 서비스 계정 또는 IAM 및 관리자 > 서비스 계정에 나열된 사용자 지정된 서비스 계정(Dataproc VM 서비스 계정 참조)에iam.serviceAccounts.actAs
권한이 있어야 합니다.Google Cloud 콘솔에서 Dataproc→Workbench 페이지로 이동한 다음 사용자 관리 노트북 탭을 선택합니다.
필터로 사전 선택되지 않았으면 필터 상자를 클릭한 후 **Environment:Dataproc Hub""를 선택합니다.
새 노트북→Dataproc Hub를 클릭합니다.
사용자 관리 노트북 만들기 페이지에서 다음 정보를 제공합니다.
- 노트북 이름: Dataproc Hub 인스턴스 이름입니다.
- 리전 - Dataproc Hub 인스턴스의 리전을 선택합니다. 이 Dataproc Hub 인스턴스에 의해 생성된 Dataproc 클러스터도 이 리전에 생성됩니다.
- 영역: 선택한 리전 내의 영역을 선택합니다.
- 환경:
Environment
:Dataproc Hub
를 선택합니다.Select a script to run after creation
(선택사항): 초기화 작업 스크립트 또는 실행 파일을 삽입하거나 찾아보고 선택하여 생성된 Dataproc 클러스터에서 실행할 수 있습니다.Populate Dataproc Hub (optional)
: 채우기를 클릭하여 각 허브 환경 변수를 설정할 수 있는 양식을 엽니다(각 변수에 대한 설명은 Dataproc Hub 인스턴스 환경 변수 설정 참조). Dataproc는 설정되지 않은 환경 변수에 기본값을 사용합니다. 또는 메타데이터key:value
쌍을 설정하여 환경 변수를 설정할 수 있습니다(다음 항목 참조).Metadata
:- 허브 환경 변수 설정이 포함된 텍스트 파일을 만든 경우(허브 환경 변수 설정) 파일 이름을
key
으로 제공하고 파일의gs://bucket-name/folder-name/environment-variable-filename
Cloud Storage 위치를value
로 제공합니다. Dataproc는 설정되지 않은 환경 변수에 기본값을 사용합니다.
- 허브 환경 변수 설정이 포함된 텍스트 파일을 만든 경우(허브 환경 변수 설정) 파일 이름을
- 머신 구성:
Machine Type
: Compute Engine 머신 유형을 선택합니다.- 다른 머신 구성 옵션을 설정합니다.
- 기타 옵션:
- 디스크, 네트워킹, 권한, 보안, 환경 업그레이드 및 시스템 상태 섹션에서 기본값을 확장하고 설정하거나 대체할 수 있습니다.
- 만들기를 클릭하여 Dataproc Hub 인스턴스를 시작합니다.
Dataproc Hub 인스턴스의 JupyterLab 열기 링크는 인스턴스가 생성된 후에 활성화됩니다. 사용자가 이 링크를 클릭하여 JupyterHub 서버 페이지를 열고 Dataproc JupyterLab 클러스터를 구성하고 만듭니다(Dataproc Hub 사용 참조).
삭제
Dataproc Hub 인스턴스 삭제
- Dataproc Hub 인스턴스를 삭제하려면 다음 안내를 따르세요.
gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
버킷 삭제
- 시작하기 전에에서 만든 Cloud Storage 버킷과 그 안에 저장된 데이터 파일을 삭제하는 방법은 다음과 같습니다.
gcloud storage rm gs://${BUCKET_NAME} --recursive