서비스 만들기

Google Cloud Console, 로컬 터미널 창 또는 Cloud Shell의 Cloud SDK gcloud 명령줄 도구, services.create API 메서드를 사용하여 Dataproc Metastore 서비스를 만들 수 있습니다.

서비스를 만들 때는 리전을 지정해야 합니다. Dataproc Metastore 지원 위치에 대한 자세한 내용은 Cloud 위치를 참조하세요.

추가 필드에는 Metastore 버전, 네트워크, 포트, 서비스 등급이 포함됩니다. 네트워크를 지정하지 않으면 Dataproc Metastore 프로젝트의 default 네트워크가 사용됩니다. Dataproc Metastore에 비공개 IP가 사용되므로, 동일한 네트워크의 VM만 Dataproc Metastore 서비스에 액세스할 수 있습니다.

시작하기 전에

  • 프로젝트에 결제를 사용 설정합니다.

  • Dataproc Metastore API를 사용 설정합니다.

  • 대부분 gcloud metastore 명령어에는 위치가 필요합니다. 위치를 지정하려면 --location 플래그를 사용하거나 기본 위치를 설정하면 됩니다.

  • VPC 피어링 제한을 위해 org-policy 제약조건을 설정하지 마세요. constraints/compute.restrictVpcPeering을 지정하면 INVALID_ARGUMENT 오류가 발생하여 생성 요청이 실패합니다. 제약조건을 설정해야 하면 다음 명령어를 사용하여 under:folders/270204312590을 허용합니다.

    gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID
    

    자세한 내용은 조직 정책 제약조건을 참조하세요.

  • Hive Metastore 인스턴스를 위해 Kerberos를 사용 설정하려면 다음이 필요합니다.

    • 자체 Kerberos 키 배포 센터(KDC)를 호스팅합니다.
    • VPC 네트워크와 KDC 사이에 IP 연결을 설정합니다.
    • Hive Keytab 콘텐츠가 포함된 Secret Manager 보안 비밀을 설정합니다.
    • KDC 및 Hive Keytab에 모두 있는 주체를 지정합니다.
    • Google Cloud Storage 버킷에 krb5.conf 파일을 지정합니다.

    자세한 내용은 Kerberos 구성을 참조하세요.

  • 서비스가 속한 프로젝트가 아닌 다른 프로젝트에 속한 네트워크에서 액세스할 수 있는 Dataproc Metastore 서비스를 만들려면 서비스 프로젝트의 Dataproc Metastore 서비스 에이전트(service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)에 roles/metastore.serviceAgent를 부여해야 합니다.

    gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
        --role "roles/metastore.serviceAgent" \
        --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"
    

액세스 제어

  • 서비스를 만들려면 metastore.services.create IAM 권한이 포함된 IAM 역할을 부여 받아야 합니다. Dataproc Metastore 특정 역할인 roles/metastore.adminroles/metastore.editor를 사용하여 만들기 권한을 부여할 수 있습니다.

  • 또한 roles/ownerroles/editor 레거시 역할을 사용하여 사용자 또는 그룹에 만들기 권한을 부여할 수 있습니다.

자세한 내용은 Dataproc Metastore IAM 및 액세스 제어를 참조하세요.

Dataproc Metastore 서비스 만들기

다음 안내에서는 Google Cloud Console, gcloud 도구, Dataproc Metastore API를 사용하여 Dataproc Metastore 서비스를 만드는 방법을 설명합니다.

Console

  1. Cloud Console에서 Dataproc Metastore 페이지를 엽니다.

    Cloud Console에서 Dataproc Metastore 열기

  2. Dataproc Metastore 페이지 상단에서 만들기 버튼을 클릭합니다. 서비스 만들기 페이지가 열립니다.

    서비스 만들기 페이지
  3. 서비스 이름 필드에 서비스의 고유한 이름을 입력합니다. 이름 지정 규칙에 대한 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  4. 데이터 위치를 선택합니다.

  5. Hive Metastore 버전을 선택합니다. 지정되지 않은 경우 Hive 버전 2.3.6이 사용됩니다. 자세한 내용은 버전 정책을 참조하세요.

  6. 출시 채널을 선택합니다. 지정하지 않으면 Stable이 사용됩니다. 자세한 내용은 출시 채널을 참조하세요.

  7. 포트를 입력합니다. 사용 가능한 Dataproc Metastore Thrift 인터페이스의 TCP 포트입니다. 입력하지 않으면 포트 번호 9083이 사용됩니다.

  8. 서비스 등급을 선택합니다. 서비스 용량에 영향을 줍니다. 기본 등급은 Developer입니다. 확장성이 제한적이고 내결함성이 없기 때문에 저비용의 개념 증명용으로 적합합니다. Enterprise 등급은 유연한 확장성, 내결함성, 다중 영역 고가용성을 제공합니다. 많은 양의 Dataproc Metastore 워크로드를 처리할 수 있습니다.

  9. 네트워크를 선택합니다. 액세스할 수 있으려면 Dataproc 클러스터와 같은 다른 Metastore 클라이언트가 연결된 것과 동일한 네트워크에 서비스가 연결되어 있어야 합니다. 입력하지 않으면 default 네트워크가 사용됩니다.

    선택사항: 공유 VPC 네트워크 사용을 클릭하고 공유 VPC 네트워크의 프로젝트 IDVPC 네트워크 이름을 입력합니다. 자세한 내용은 Dataproc Metastore로 VPC 서비스 제어를 참조하세요.

  10. 선택사항: Data Catalog 동기화를 사용 설정하여 Dataproc Metastore 서비스를 Data Catalog에 동기화할 수 있습니다. 자세한 내용은 Dataproc Metastore에서 Data Catalog로 동기화를 참조하세요.

  11. 선택사항: 서비스 유지보수 기간에 대해 요일시간을 선택합니다. 자세한 내용은 유지보수 기간을 참조하세요.

  12. 선택사항: Kerberos Keytab 파일 사용 설정:

    1. 전환을 클릭하여 Kerberos를 사용 설정합니다.

    2. 보안 비밀 리소스 ID를 선택하거나 입력합니다.

    3. 최신 보안 비밀 버전을 사용하도록 선택하거나 사용할 이전 항목을 선택합니다.

    4. Kerberos 주체를 입력합니다. 이 Dataproc Metastore 서비스에 할당되는 주체입니다.

    5. krb5 config 파일을 찾습니다.

  13. 선택사항: + 재정의 추가를 클릭하여 Hive Metastore에 매핑을 적용합니다.

  14. 선택사항: + 라벨 추가를 클릭하여 Metastore 서비스 리소스에 메타데이터를 추가합니다.

  15. 제출 버튼을 클릭하여 서비스를 만들고 시작합니다.

  16. Dataproc Metastore 페이지로 돌아와 목록에 새 서비스가 표시되는지 확인합니다.

gcloud

  1. 다음 gcloud metastore services create 명령어를 사용하여 서비스를 만듭니다.

    gcloud metastore services create SERVICE \
        --location=LOCATION \
        --labels=k1=v1,k2=v2,k3=v3 \
        --network=NETWORK \
        --port=PORT \
        --tier=TIER \
        --hive-metastore-version=HIVE_METASTORE_VERSION \
        --release-channel=RELEASE_CHANNEL \
        --hive-metastore-configs=K1=V1,K2=V2 \
        --kerberos-principal=KERBEROS_PRINCIPAL \
        --krb5-config=KRB5_CONFIG \
        --keytab=CLOUD_SECRET
    

    다음을 바꿉니다.

    • SERVICE: 새 서비스의 이름입니다.
    • LOCATION: Google Cloud 리전입니다.
    • k1=v1,k2=v2,k3=v3: 사용된 라벨입니다.
    • NETWORK: 서비스에 액세스할 수 있는 VPC 네트워크의 이름입니다. 서비스와 다른 프로젝트에 속하는 VPC 네트워크를 사용하는 경우 전체 상대 리소스 이름을 제공해야 합니다(예: projects/HOST_PROJECT/global/networks/NETWORK_ID).
    • PORT: Metastore Thrift 인터페이스를 사용할 수 있는 TCP 포트입니다. 기본값: 9083.
    • TIER: 새 서비스의 등급 용량입니다.
    • HIVE_METASTORE_VERSION: 이 위치에서 새 Metastore 서비스를 만들 때 사용할 수 있는 Hive Metastore 버전입니다. 서버는 목록에서 정확히 하나의 HiveMetastoreVersionis_default를 설정하도록 보장합니다.
    • RELEASE_CHANNEL: 서비스의 출시 채널입니다.
    • K1=V1,K2=V2: 선택사항: 사용된 Hive Metastore 구성입니다.
    • KERBEROS_PRINCIPAL: 선택사항: Keytab 및 KDC 모두에 있는 Kerberos 주체입니다. 일반적으로 "primary/instance@REALM" 주체 형식이 사용되지만 정확하지는 않습니다.
    • KRB5_CONFIG: 선택사항: krb5.config 파일은 KDC 위치와 렐름 및 Kerberos 애플리케이션의 기본값이 포함된 KDC 및 Kerberos 렐름 정보를 지정합니다.
    • CLOUD_SECRET: 선택사항: Secret Manager 보안 비밀 버전의 상대 리소스 이름입니다.
  2. 만들기가 성공했는지 확인합니다.

REST

API 안내에 따라 API 탐색기를 사용하여 서비스를 만듭니다.

RFC 1918 이외의 비공개 IP 주소 범위 사용

제공된 VPC 네트워크에서 Dataproc Metastore 서비스에 필요한 사용 가능한 RFC 1918 주소가 부족할 수도 있습니다. 이 경우 Dataproc Metastore는 서비스 생성을 위한 RFC 1918 범위 밖에 있는 비공개 IP 주소 범위를 예약하려고 시도합니다. 지원되는 RFC 1918 이외의 비공개 범위 목록은 VPC 네트워크 문서의 유효한 범위를 참조하세요.

Dataproc Metastore에 사용되는 RFC 1918 이외의 비공개 IP 주소는 제공된 VPC 네트워크에 연결된 온프레미스 네트워크의 범위와 충돌할 수 있습니다. Dataproc Metastore에서 예약한 RFC 1918 및 RFC 1918 이외의 비공개 IP 주소 목록을 확인하려면 다음 안내를 따르세요.

gcloud compute addresses list \
    --project NETWORK_PROJECT_ID \
    --filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"

충돌이 확인된 상태에서 온프레미스 네트워크를 재구성하여 완화할 수 없는 경우 문제가 되는 Dataproc Metastore 서비스를 삭제하고 2시간 후에 다시 만듭니다.

Dataproc Metastore 서비스를 만든 후

서비스를 만든 후에는 Dataproc 클러스터를 만들고 연결하거나 서비스를 해당 Hive Metastore로 사용하는 자체 관리형 Apache Hive/Apache Spark/Presto 클러스터를 만들고 연결할 수 있습니다.

다음 단계