Dataproc Metastore 연결 문제 해결

이 페이지에서는 Dataproc 클러스터 또는 Dataproc Serverless 워크로드를 관리형 Dataproc Metastore 서비스에 연결할 때 발생하는 일반적인 연결 문제를 진단하고 해결하는 방법을 안내합니다.

일반적인 증상 및 오류 메시지

Dataproc에서 Dataproc Metastore와의 연결 문제가 발생하면 다음과 같은 오류가 표시될 수 있습니다.

  • Unable to connect to Hive Metastore
  • Connection refused
  • Host unreachable
  • javax.jdo.JDOException 또는 유사한 데이터베이스 연결 오류
  • 데이터베이스 또는 테이블을 나열하려고 시도하거나 Metastore와 상호작용하는 Spark 또는 Hive 작업을 제출할 때 시간 초과 오류가 발생합니다.

일반적인 원인 및 문제 해결 단계

이 섹션에서는 Dataproc Metastore 연결 문제가 발생하는 일반적인 이유를 설명하고 각 문제에 대한 구체적인 문제 해결 단계를 제공합니다.

1. 네트워크 구성 문제

네트워크 잘못된 구성은 Dataproc 워크로드와 Dataproc Metastore 간 연결 실패의 가장 빈번한 원인입니다.

  • Virtual Private Cloud 네트워크 피어링 또는 비공개 서비스 액세스:

    • Dataproc Metastore 인스턴스는 일반적으로 가상 프라이빗 클라우드 네트워크 피어링 연결 (특히 비공개 서비스 액세스)을 사용하여 비공개 IP 주소 범위를 통해 액세스합니다.
    • 피어링 상태 확인: Dataproc 워크로드의 가상 프라이빗 클라우드 네트워크와 Dataproc Metastore의 서비스 제작자 네트워크 간 가상 프라이빗 클라우드 피어링 연결이 활성 상태이고 정상인지 확인합니다.Google Cloud 콘솔의 VPC 네트워크 > VPC 네트워크 피어링에서 이를 확인할 수 있습니다.
    • IP 범위 할당: 가상 프라이빗 클라우드 네트워크의 비공개 서비스 액세스에 충분한 IP 범위가 할당되었는지 확인합니다.
  • 방화벽 규칙:

    • Dataproc 워크로드의 Virtual Private Cloud 네트워크에 있는 방화벽 규칙이 Dataproc Metastore에서 사용하는 포트 (기본값은 9083)에서 아웃바운드 트래픽을 허용하는지 확인합니다.
    • 서비스 생산자 네트워크 측에 Dataproc 워크로드의 트래픽을 차단하는 지나치게 제한적인 인그레스 규칙이 없는지 확인합니다.
  • DNS 변환:

    • Metastore 엔드포인트 호스트 이름 (예: your-metastore-endpoint.us-central1.dataproc.cloud.google.com)이 Dataproc 클러스터 또는 Dataproc 서버리스 환경의 비공개 IP 주소로 올바르게 확인됩니다.
    • Cloud DNS 비공개 영역 또는 DNS 전달에 문제가 있으면 변환 실패가 발생할 수 있습니다.

문제 해결 단계 (네트워크):

  1. Dataproc Metastore 연결 정보 확인:
    • Google Cloud 콘솔에서 Dataproc Metastore로 이동하여 인스턴스를 선택합니다.
    • 엔드포인트 URI와 연결된 네트워크를 확인합니다.
  2. Virtual Private Cloud 피어링 또는 비공개 서비스 액세스 확인:
    • VPC 네트워크 > VPC 네트워크 피어링으로 이동합니다. servicenetworking-googleapis-com에 대한 피어링 연결이 ACTIVE인지 확인합니다.
  3. 연결 테스트 사용: Google Cloud의 연결 테스트를 사용하여 Dataproc 워크로드의 서브넷에 있는 Compute Engine VM에서 Dataproc Metastore 엔드포인트 IP 주소 및 포트로의 네트워크 경로를 진단합니다.
  4. 방화벽 로그 확인: 방화벽 규칙이 의심되는 경우 Cloud 방화벽 로그에서 거부된 연결을 분석합니다.

2. IAM 권한

Dataproc 워크로드에서 사용하는 서비스 계정에는 Dataproc Metastore에 액세스할 수 있는 적절한 IAM 역할이 필요합니다.

  • 필요한 역할: 서비스 계정에는 Dataproc Metastore 인스턴스 또는 프로젝트에 대한 Dataproc Metastore 사용자 역할 (roles/datametastore.user)이 있어야 합니다.
  • 서비스 에이전트 권한: Dataproc이 Metastore에 암시적으로 액세스하는 경우 Dataproc 서비스 에이전트에 충분한 권한이 있는지 확인합니다.

문제 해결 단계 (IAM):

  1. 서비스 계정 식별: Dataproc 클러스터 또는 Dataproc Serverless 일괄에서 사용하는 서비스 계정을 확인합니다.
  2. IAM 역할 확인: Google Cloud 콘솔에서 IAM 및 관리자 > IAM으로 이동합니다. Dataproc Metastore 프로젝트 또는 인스턴스에서 서비스 계정에 할당된 역할을 확인합니다. 누락된 경우 roles/datametastore.user 부여
  3. 서비스 계정 구성에 대한 자세한 내용은 다음을 참고하세요.

3. 잘못된 엔드포인트 구성

Dataproc 워크로드는 올바른 Dataproc Metastore 엔드포인트 URI로 구성해야 합니다.

문제 해결 단계 (엔드포인트):

  1. 엔드포인트 URI 확인: 워크로드 제출에서 Dataproc Metastore 엔드포인트를 지정하는 데 사용되는 hive.metastore.uris Spark 속성 또는 기타 구성을 다시 한번 확인합니다. Dataproc Metastore 인스턴스 세부정보의 엔드포인트 URI와 일치하는지 확인합니다.

4. 기타 고려사항

  • Metastore 상태: Google Cloud 콘솔에서 Dataproc Metastore 인스턴스가 HEALTHY 상태인지 확인합니다. 비정상인 경우 먼저 Metastore의 내부 문제를 해결합니다.
  • 버전 호환성: 드물지만 Dataproc 이미지 버전과 Dataproc Metastore 버전 간에 알려진 호환성 문제가 없는지 확인합니다.
  • SQL 프록시와 관리형 서비스 비교: cloud-sql-proxy.sh 초기화 작업을 사용하여 Cloud SQL을 메타 스토어로 사용하는 경우 Cloud SQL 프록시 초기화 작업 README에서 특정 문제 해결을 참고하세요.

다음 단계