이 페이지에서는 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 전달에 문제가 있으면 변환 실패가 발생할 수 있습니다.
- Metastore 엔드포인트 호스트 이름 (예:
문제 해결 단계 (네트워크):
- Dataproc Metastore 연결 정보 확인:
- Google Cloud 콘솔에서 Dataproc Metastore로 이동하여 인스턴스를 선택합니다.
- 엔드포인트 URI와 연결된 네트워크를 확인합니다.
- Virtual Private Cloud 피어링 또는 비공개 서비스 액세스 확인:
- VPC 네트워크 > VPC 네트워크 피어링으로 이동합니다.
servicenetworking-googleapis-com
에 대한 피어링 연결이ACTIVE
인지 확인합니다.
- VPC 네트워크 > VPC 네트워크 피어링으로 이동합니다.
- 연결 테스트 사용: Google Cloud의 연결 테스트를 사용하여 Dataproc 워크로드의 서브넷에 있는 Compute Engine VM에서 Dataproc Metastore 엔드포인트 IP 주소 및 포트로의 네트워크 경로를 진단합니다.
- 방화벽 로그 확인: 방화벽 규칙이 의심되는 경우 Cloud 방화벽 로그에서 거부된 연결을 분석합니다.
2. IAM 권한
Dataproc 워크로드에서 사용하는 서비스 계정에는 Dataproc Metastore에 액세스할 수 있는 적절한 IAM 역할이 필요합니다.
- 필요한 역할: 서비스 계정에는 Dataproc Metastore 인스턴스 또는 프로젝트에 대한 Dataproc Metastore 사용자 역할 (
roles/datametastore.user
)이 있어야 합니다. - 서비스 에이전트 권한: Dataproc이 Metastore에 암시적으로 액세스하는 경우 Dataproc 서비스 에이전트에 충분한 권한이 있는지 확인합니다.
문제 해결 단계 (IAM):
- 서비스 계정 식별: Dataproc 클러스터 또는 Dataproc Serverless 일괄에서 사용하는 서비스 계정을 확인합니다.
- IAM 역할 확인: Google Cloud 콘솔에서 IAM 및 관리자 > IAM으로 이동합니다.
Dataproc Metastore 프로젝트 또는 인스턴스에서 서비스 계정에 할당된 역할을 확인합니다. 누락된 경우
roles/datametastore.user
부여 - 서비스 계정 구성에 대한 자세한 내용은 다음을 참고하세요.
3. 잘못된 엔드포인트 구성
Dataproc 워크로드는 올바른 Dataproc Metastore 엔드포인트 URI로 구성해야 합니다.
문제 해결 단계 (엔드포인트):
- 엔드포인트 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에서 특정 문제 해결을 참고하세요.
다음 단계
- Dataproc Metastore 문서를 검토합니다.
- 연결 및 네트워킹 오류 시나리오를 참고하세요.
- 네트워크 문제에 관한 일반적인 문제 해결 가이드를 참고하세요.