Dataproc Hub 구성


Dataproc Hub는 맞춤설정된 JupyterHub 서버입니다. 관리자는 단일 사용자 Dataproc 클러스터를 생성하여 JupyterJupyterLab 노트북 환경을 호스팅할 수 있는 Dataproc 허브 인스턴스를 구성하고 만듭니다(Dataproc 허브 사용 참조).

목표

  1. Dataproc 클러스터 구성을 정의하거나 사전 정의된 구성 파일 중 하나를 사용합니다.

  2. Dataproc 허브 인스턴스 환경 변수를 설정합니다.

  3. Dataproc 허브 인스턴스를 만듭니다.

시작하기 전에

아직 만들지 않았다면 Google Cloud 프로젝트와 Cloud Storage 버킷을 만듭니다.

  1. 프로젝트 설정

    1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
    2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

      프로젝트 선택기로 이동

    3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

    4. API Dataproc, Compute Engine, and Cloud Storage 사용 설정

      API 사용 설정

    5. Google Cloud CLI를 설치합니다.
    6. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

      gcloud init
    7. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

      프로젝트 선택기로 이동

    8. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

    9. API Dataproc, Compute Engine, and Cloud Storage 사용 설정

      API 사용 설정

    10. Google Cloud CLI를 설치합니다.
    11. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

      gcloud init

  2. 이 가이드에서 사용되는 데이터를 보관하기 위한 프로젝트 내 Cloud Storage 버킷 만들기

    1. Google Cloud Console에서 Cloud Storage 버킷 페이지로 이동합니다.

      버킷 페이지로 이동

    2. 버킷 만들기를 클릭합니다.
    3. 버킷 만들기 페이지에서 버킷 정보를 입력합니다. 다음 단계로 이동하려면 계속을 클릭합니다.
      • 버킷 이름 지정에서 버킷 이름 지정 요구사항을 충족하는 이름을 입력합니다.
      • 데이터를 저장할 위치 선택에서 다음을 수행합니다.
        • 위치 유형 옵션을 선택합니다.
        • 위치 옵션을 선택합니다.
      • 데이터의 기본 스토리지 클래스 선택에서 스토리지 클래스를 선택합니다.
      • 객체 액세스를 제어하는 방식 선택에서 액세스 제어 옵션을 선택합니다.
      • 고급 설정(선택사항)에서 암호화 방법, 보관 정책 또는 버킷 라벨을 지정합니다.
    4. 만들기를 클릭합니다.

클러스터 구성 정의

Dataproc Hub 인스턴스는 YAML 클러스터 구성 파일에 포함된 구성 값으로 클러스터를 만듭니다.

클러스터 구성은 Dataproc 클러스터에 사용할 수 있는 모든 기능 또는 구성요소(예: 머신 유형, 초기화 작업, 선택적 구성요소)를 지정할 수 있습니다. 클러스터 이미지 버전이 1.4.13 이상이어야 합니다. 이미지 버전이 1.4.13 미만인 클러스터를 생성하려고 하면 오류가 발생하고 실패합니다.

샘플 YAML 클러스터 구성 파일

clusterName: cluster-name
config:
  gceClusterConfig:
    metadata:
      'PIP_PACKAGES': 'google-cloud-core>=1.3.0 google-cloud-storage>=1.28.1'
  initializationActions:
  - executableFile: gs://dataproc-initialization-actions/python/pip-install.sh
  softwareConfig:
    imageVersion: 1.5-ubuntu18
    optionalComponents:
    - ANACONDA
    - JUPYTER

각 구성을 Cloud Storage에 저장해야 합니다. 여러 구성 파일을 만들고 저장하여 Dataproc Hub 사용 시 사용자에게 Dataproc 클러스터 메모장 환경을 만들 수 있는 선택권을 부여할 수 있습니다.

YAML 클러스터 구성 파일을 만드는 방법은 두 가지가 있습니다.

  1. 콘솔에서 YAML 클러스터 구성 파일 만들기

  2. 기존 클러스터에서 YAML 클러스터 구성 파일 내보내기

콘솔에서 YAML 클러스터 구성 파일 만들기

  1. Google Cloud 콘솔에서 클러스터 만들기 페이지를 열고 필드를 선택 및 작성하여 Dataproc Hub가 사용자에 대해 생성할 클러스터 유형을 지정합니다.
    1. 왼쪽 패널 하단에서 '동등한 REST'를 선택합니다.
    2. 선행 POST 요청 행을 제외하고 생성된 JSON 블록을 복사한 다음 온라인 JSON-YAML 변환기에 붙여넣습니다('JSON을 YAML로 변환' 온라인 검색).
    3. 변환된 YAML을 로컬 cluster-config-filename.yaml 파일에 복사합니다.

기존 클러스터에서 YAML 클러스터 구성 파일 내보내기

  1. 요구사항과 일치하는 클러스터를 만듭니다.
  2. 클러스터 구성을 로컬 cluster-config-filename.yaml 파일로 내보냅니다.
    gcloud dataproc clusters export cluster-name \
        --destination cluster-config-filename.yaml  \
        --region region
     

Cloud Storage에 YAML 구성 파일 저장

로컬 YAML 클러스터 구성 파일을 Cloud Storage 버킷에 복사합니다.

gsutil 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.yamlexample-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/

허브 환경 변수 설정

허브 환경 변수를 설정하는 방법에는 두 가지가 있습니다.

  1. 콘솔에서 허브 환경 변수 설정

  2. 텍스트 파일에 허브 환경 변수 설정

콘솔에서 허브 환경 변수 설정

Google Cloud 콘솔의 Dataproc→Workbench 페이지에 있는 사용자 관리 노트북 탭에서 Dataproc Hub 인스턴스를 만들 때는 채우기 버튼을 클릭하여 각 환경 변수를 설정할 수 있게 해주는 Dataproc Hub 채우기 양식을 열수 있습니다.

텍스트 파일에 허브 환경 변수 설정

  1. 파일을 생성합니다. 텍스트 편집기를 사용하여 로컬 파일에 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
    

  2. Cloud Storage에 파일을 저장합니다. 로컬 Dataproc Hub 인스턴스 환경 변수 파일을 Cloud Storage 버킷에 복사합니다.

    gsutil 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 인스턴스 만들기

  1. 시작하기 전에: Google Cloud 콘솔에서 Dataproc Hub 인스턴스를 만들려면 사용자 계정에 compute.instances.create 권한이 있어야 합니다. 또한 인스턴스의 서비스 계정 즉, Compute Engine 기본 서비스 계정 또는 IAM 및 관리자 > 서비스 계정에 나열된 사용자 지정된 서비스 계정(Dataproc VM 서비스 계정 참조)에 iam.serviceAccounts.actAs 권한이 있어야 합니다.

  2. Google Cloud 콘솔에서 Dataproc→Workbench 페이지로 이동한 다음 사용자 관리 노트북 탭을 선택합니다.

  3. 필터로 사전 선택되지 않았으면 필터 상자를 클릭한 후 **Environment:Dataproc Hub""를 선택합니다.

  4. 새 노트북→Dataproc Hub를 클릭합니다.

  5. 사용자 관리 노트북 만들기 페이지에서 다음 정보를 제공합니다.

    1. 노트북 이름: Dataproc Hub 인스턴스 이름입니다.
    2. 리전 - Dataproc Hub 인스턴스의 리전을 선택합니다. 이 Dataproc Hub 인스턴스에 의해 생성된 Dataproc 클러스터도 이 리전에 생성됩니다.
    3. 영역: 선택한 리전 내의 영역을 선택합니다.
    4. 환경:
      1. Environment: Dataproc Hub를 선택합니다.
      2. Select a script to run after creation(선택사항): 초기화 작업 스크립트 또는 실행 파일을 삽입하거나 찾아보고 선택하여 생성된 Dataproc 클러스터에서 실행할 수 있습니다.
      3. Populate Dataproc Hub (optional): 채우기를 클릭하여 각 허브 환경 변수를 설정할 수 있는 양식을 엽니다(각 변수에 대한 설명은 Dataproc Hub 인스턴스 환경 변수 설정 참조). Dataproc는 설정되지 않은 환경 변수에 기본값을 사용합니다. 또는 메타데이터 key:value 쌍을 설정하여 환경 변수를 설정할 수 있습니다(다음 항목 참조).
      4. Metadata:
        1. 허브 환경 변수 설정이 포함된 텍스트 파일을 만든 경우(허브 환경 변수 설정) 파일 이름을 key으로 제공하고 파일의 gs://bucket-name/folder-name/environment-variable-filename Cloud Storage 위치를 value로 제공합니다. Dataproc는 설정되지 않은 환경 변수에 기본값을 사용합니다.
    5. 머신 구성:
      1. Machine Type: Compute Engine 머신 유형을 선택합니다.
      2. 다른 머신 구성 옵션을 설정합니다.
    6. 기타 옵션:
      1. 디스크, 네트워킹, 권한, 보안, 환경 업그레이드 및 시스템 상태 섹션에서 기본값을 확장하고 설정하거나 대체할 수 있습니다.
    7. 만들기를 클릭하여 Dataproc Hub 인스턴스를 시작합니다.
  6. Dataproc Hub 인스턴스의 JupyterLab 열기 링크는 인스턴스가 생성된 후에 활성화됩니다. 사용자가 이 링크를 클릭하여 JupyterHub 서버 페이지를 열고 Dataproc JupyterLab 클러스터를 구성하고 만듭니다(Dataproc Hub 사용 참조).

삭제

Dataproc Hub 인스턴스 삭제

  • Dataproc Hub 인스턴스를 삭제하려면 다음 안내를 따르세요.
    gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
    

버킷 삭제

  • 시작하기 전에에서 만든 Cloud Storage 버킷과 그 안에 저장된 데이터 파일을 삭제하는 방법은 다음과 같습니다.
    gsutil -m rm -r gs://${BUCKET_NAME}
    

다음 단계