문제 해결

이 페이지에서는 다양한 오류 시나리오와 오류 해결을 위한 문제 해결 단계에 대해 설명합니다.

연결 및 네트워킹 오류 시나리오

연결 또는 네트워킹 문제가 서비스에 발생하는 경우 다음 섹션의 시나리오 중 하나가 문제의 원인인지 확인합니다.

VPC 피어링을 제한하는 제약조건으로 인해 서비스 생성이 실패함

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

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

서비스 계정이 존재하지 않을 경우 프로젝트 간 배포가 실패함

서비스가 속한 프로젝트가 아닌 다른 프로젝트에 속한 네트워크에서 액세스할 수 있는 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"

자세한 내용은 프로젝트 간 배포 설정을 참조하세요.

멀티 리전 Dataproc Metastore 서비스 생성 실패

멀티 리전 Dataproc Metastore 서비스를 만들 때 다음 오류가 표시될 수 있습니다.

The Dataproc Service Agent does not have permission to GET Dataproc Metastore service
'projects/<dpmsproject>/locations/nam7/services/<service>'. If using a service from the
cluster's project, please ensure the service agent has the Cloud IAM role
'roles/dataproc.serviceAgent'. Please see
https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-
principals#service_agent_control_plane_identity for information on the Dataproc Service
Agent, and https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-
gcloud-manual for information on granting access.

이 오류는 Dataproc 클러스터가 Dataproc Metastore와 다른 프로젝트에 있지만 프로젝트에 올바른 권한을 부여하지 않은 경우에 발생합니다.

이 오류를 해결하려면 Dataproc Metastore 프로젝트에 포함된 Dataproc 서비스 계정에 metastore.services.get 권한을 부여해야 합니다.

네트워크 연결에 비공개 IP 필요

Dataproc Metastore에서는 비공개 IP만 사용되므로 공개 IP가 노출되지 않습니다. 즉, 제공된 Virtual Private Cloud(VPC) 네트워크 또는 온프레미스(Cloud VPN 또는 Cloud Interconnect를 통해 연결됨)의 VM만 Dataproc Metastore 서비스에 액세스할 수 있습니다.

자세한 내용은 서비스 액세스를 참조하세요.

Kerberos에 필요한 인그레스 허용 방화벽 규칙

Kerberos를 사용하려면 Dataproc Metastore에서 프로젝트 네트워크의 호스트에 대한 연결을 시작해야 합니다. Dataproc Metastore IP가 포함된 /17 IP 블록에서 모든 포트에 TCP 및 UDP 인그레스를 허용하는 방화벽 규칙을 만들어야 합니다.

자세한 내용은 KDC에 대한 방화벽 규칙서비스에 대한 방화벽 규칙을 참조하세요.

공유 VPC 네트워크에 프로비저닝된 리소스로 연결 오류 발생

Dataproc Metastore인 경우. 이 경우 Dataproc Metastore는 서비스 생성을 위한 RFC 1918 범위 밖에 있는 비공개 IP 주소 범위를 예약하려고 시도합니다. 지원되는 RFC 이외의 1918 비공개 범위 목록은 VPC 네트워크 문서에서 유효한 범위를 참조하세요.} 서비스가 다른 프로젝트에 속한 네트워크를 사용하고 Compute Engine이 해당 서비스 경계로 보호되면 메타스토어 프로젝트 및 네트워크 프로젝트가 동일한 경계에 있어야 합니다.

기존 Dataproc Metastore 프로젝트를 경계에 추가하려면 서비스 경계 업데이트의 안내를 따르세요.

자세한 내용은 Dataproc Metastore로 VPC 서비스 제어를 참조하세요.

할당된 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시간 후에 다시 만듭니다.

자세한 내용은 IP 주소 범위 소진을 참조하세요.

작업 제한 시간 오류 시나리오

다음 오류 시나리오에서는 응답하지 않는 서비스 또는 작업 제한 시간이 발생합니다.

감사 로그를 사용하여 작업 제한 시간 문제 해결

서비스 작업 제한 시간 문제를 해결하려면 Google Cloud 콘솔에서 로그 탐색기를 사용하여 클라우드 프로젝트에 대한 감사 로그 항목을 검색합니다.

쿼리 빌더 창에서 감사를 받은 리소스 또는 audited_resource를 Google Cloud 리소스 유형으로 선택하고 Dataproc Metastore 또는 metastore.googleapis.com을 서비스로 선택합니다. 메서드 선택은 선택사항입니다.

자세한 내용은 로그 보기를 참조하세요.

오류 시나리오 가져오기 및 내보내기

이 섹션에서는 일반적인 Dataproc Metastore 가져오기 및 내보내기 문제에 대해 간략하게 설명합니다.

Hive 버전이 일치하지 않기 때문에 가져오기가 실패함

메타데이터를 가져올 때는 Hive 메타스토어와 Dataproc Metastore 버전이 호환 가능해야 합니다. 두 항목이 일치하지 않으면 가져오기가 실패할 수 있습니다.

호환성에 대한 자세한 내용은 버전 정책을 참조하세요.

Cloud Logging에서 이 오류가 발생했는지 확인할 수 있습니다. 다음 메시지는 이 오류의 예시입니다.

Metastore schema version is not compatible. Hive Version: 3.1.0, Database Schema Version: 2.3.0

Hive 테이블 파일이 누락되어 가져오기가 실패함

Avro에 대해 가져오기를 준비할 때는 테이블이 비어 있더라도 각 Hive 테이블에 대해 파일이 있어야 합니다. 그렇지 않으면 가져오기가 실패합니다.

Dataproc Metastore Toolkit을 참조로 사용하여 올바른 Hive 메타데이터 스키마를 확인할 수 있습니다.

서비스 에이전트 또는 사용자에게 필요한 권한이 없음

Dataproc Metastore 서비스 에이전트(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)와 메타데이터를 가져오는 사용자는 가져오기에 사용된 Cloud Storage 버킷에 대한 다음 읽기 권한이 있어야 합니다.

  • MySQL의 경우 가져오기에 사용된 Cloud Storage 객체(SQL 덤프 파일)에 대한 storage.objects.get 권한이 있어야 합니다.

  • Avro의 경우 가져오기에 사용된 Cloud Storage 버킷에 대한 storage.objects.get 권한이 있어야 합니다.

내보내기의 경우 Dataproc Metastore 서비스 에이전트(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) 및 내보내기를 만드는 사용자에게 해당 버킷에 대한 storage.objects.create 권한이 있어야 합니다.

데이터베이스 파일이 너무 커서 작업이 실패함

데이터베이스 파일이 너무 크면 가져오기 또는 내보내기 프로세스를 완료하는 데 걸리는 시간이 작업 제한 시간 한도를 초과할 수 있습니다. 3시간의 작업 제한 시간 한도 내에 가져오기를 완료할 수 없는 경우 메타데이터를 여러 Dataproc Metastore 인스턴스에 분할할 수 있습니다.

백업 및 복원 오류 시나리오

이 섹션에서는 일반적인 Dataproc Metastore 백업 및 복원 문제에 대해 간략하게 설명합니다.

서비스에 새 백업을 만들 수 없음

서비스에 이미 백업이 7개 있으면 먼저 백업을 수동으로 삭제한 후에 새 백업을 만들어야 합니다. 백업/복원 탭에서 기존 백업을 삭제할 수 있습니다.

사용자에게 필요한 권한이 없음

메타데이터를 백업하려면 metastore.backups.create IAM 권한이 포함된 IAM 역할을 요청해야 합니다.

메타데이터를 복원하려면 metastore.services.restoremetastore.backups.use IAM 권한이 포함된 IAM 역할을 요청해야 합니다.

서비스 메타데이터 파일이 너무 크기 때문에 작업이 실패함

서비스 메타데이터 파일이 너무 크면 백업 또는 복원 프로세스를 완료하는 데 1시간 이상 작업 제한 시간 한도가 걸릴 수 있습니다.

Dataproc 클러스터 오류 시나리오

다음 섹션에서는 일반적인 Dataproc 및 자체 관리형 클러스터 문제를 대략적으로 설명합니다.

버전 불일치로 인해 Dataproc 클러스터 연결이 실패함

Dataproc 클러스터를 연결할 때 Dataproc 이미지와 Dataproc Metastore Hive 버전이 호환되어야 합니다. 다음 이미지 버전 관리 페이지에서 Hive 버전이 호환되는지 확인하세요.

자세한 내용은 Dataproc 이미지 버전 목록을 참조하세요.

역할 부족으로 인해 Dataproc 클러스터 생성이 실패함

Dataproc 클러스터를 만들 때 다음 오류 메시지와 함께 클러스터 생성이 실패합니다.

gcloud.dataproc.clusters.create) INVALID_ARGUMENT: Default Service Account '**********-compute@developer.gserviceaccount.com' is missing required permissions: [dataproc.agents.create, dataproc.agents.delete, dataproc.agents.get, dataproc.agents.update, dataproc.tasks.lease, dataproc.tasks.listInvalidatedLeases, dataproc.tasks.reportStatus]. Service Accounts must have either 'Dataproc/Dataproc Worker' role or all permissions granted by the role.

이는 Dataproc 클러스터를 만들고 Dataproc Metastore에 연결하려고 할 때 발생할 수 있습니다.

이 문제를 해결하려면 서비스 계정에 roles/dataproc.worker를 부여합니다. 다음 예시에서는 몇 가지 샘플 값을 사용하여 이를 수행하는 방법을 보여줍니다.

gcloud projects add-iam-policy-binding my_project \
    --member=219315-compute@developer.gserviceaccount.com \
    --role=roles/dataproc.worker

시간대 문제로 인해 메타스토어에 연결할 수 없음

Hive 파일이 The server time zone value 'CDT' is unrecognized or represents more than one time zone 오류를 반환합니다.

Dataproc에서 메타스토어에 연결할 수 없는 경우 현재 클러스터를 삭제하고 다음 시간대 매개변수를 포함하도록 gcloud dataproc clusters create 명령어 또는 자동화 도구를 업데이트해야 합니다.

--metadata "hive-metastore-uri=jdbc:mysql://10.207.26.77:3306/hive_metastore?serverTimezone=CST6CDT"

Google Cloud CLI 문제 해결

gcloud CLI 명령어를 사용할 수 없거나 명령어가 문서화된 방식과 다르게 작동하는 경우 gcloud CLI를 업데이트해 보세요.

gcloud components update

다음 단계