이 페이지에서는 Dataproc Metastore에 보조 버전 기능을 사용하는 방법을 설명합니다.
보조 버전을 사용하면 Hive Metastore의 서로 다른 두 버전을 단일 Dataproc Metastore 서비스에 연결할 수 있습니다. 이 구성을 사용하면 서로 다른 Hive Metastore 버전에서 실행되어야 하는 여러 데이터 처리 엔진을 지원할 수 있습니다.
예를 들어 보조 버전을 사용하면 여러 Dataproc 클러스터를 동일한 Dataproc Metastore 서비스에 연결할 수 있습니다. 이 구성에서는 하나의 클러스터에서 Dataproc 버전 2.0을 실행하면서 다른 클러스터에서 Dataproc 버전 1.5를 실행할 수 있습니다. Dataproc 2.0 클러스터는 Hive 버전 3.1.2를 노출하는 엔드포인트에 연결할 수 있고 Dataproc 1.5 클러스터는 Hive 버전 2.3.6을 노출하는 엔드포인트에 연결할 수 있습니다.
보조 버전 작동 방식
보조 버전을 사용 설정하면 Dataproc Metastore가 각 Hive Metastore 버전에 대해 개별 엔드포인트를 노출합니다. 그러나 두 엔드포인트는 계속 동일한 메타데이터 데이터베이스를 공유합니다.
이 기능을 사용하면 단일 Dataproc Metastore 서비스에 여러 메타데이터 집합을 사용할 수 없습니다. 대신 서비스 간 호환성을 확장 및 향상시킬 수 있는 방법을 제공합니다.
고려사항
일반
각 Dataproc Metastore 서비스에 대해 보조 버전을 하나만 만들 수 있습니다.
보조 버전은 기본 버전보다 낮은 Hive Metastore 버전을 사용하도록 구성해야 합니다.
보조 버전은 기본 버전과 다른 로그 파일을 유지 관리합니다. Hive Metastore 문제를 디버깅하려면 Cloud Logging을 사용하면 됩니다.
기능 지원
보조 버전은 다음 기능을 지원하지 않습니다.
- 메타데이터 가져오기, 메타데이터 내보내기
-
두 버전 사이의 백엔드 메타데이터가 공유되기 때문에 메타데이터 관련 기능(가져오기/내보내기/백업/복원)은 기본 버전에서만 사용할 수 있습니다.
일부 Hive 메서드는 보조 버전과 기본 버전 사이에 호환되지 않을 수 있습니다. 이러한 호환성은 기본 버전 및 보조 버전에 사용 중인 Hive 버전과 Hive 버전 간에 호환되는 메서드에 따라 달라집니다.
기본 Dataproc Metastore 인스턴스의 모든 기능이 보조 버전에서 지원되지는 않습니다. 예를 들어 Hive 트랜잭션 테이블에 레코드를 삽입하는 것은 보조 버전 2.3.6과 상호작용하는 Hive 2 클라이언트에서는 지원되지 않습니다. 하지만 이 작업은 기본 버전 3.1.2와 상호작용하는 Hive 3 클라이언트에서 지원됩니다.
하위 Hive 버전의 기능이 상위 Hive 버전에서 지원 중단되면 해당하는 하위 보조 버전은 지원 중단된 기능을 지원하지 않습니다. 예를 들어 Hive 2는 색인을 지원하지만 Hive 2.3.6을 실행하는 보조 버전은 기본 버전이 Hive 3.1.2를 실행할 경우 색인을 지원하지 않습니다.
보조 버전을 사용하여 트랜잭션 테이블을 만들거나 보조 버전의 트랜잭션 테이블에 데이터를 삽입하는 것은 금지됩니다.
버전 간 공유 속성
보조 버전을 만들 때는 일부 속성이 공유되고 보조 버전과 기본 버전 사이에 공통으로 유지됩니다. 다른 속성은 공유되지 않고 두 버전 간에 별개로 유지됩니다.
다음 표에서는 이러한 차이를 보여줍니다.
속성 | 일반 | 별개 |
---|---|---|
엔드포인트 | ✓ | |
Hive 구성 재정의* | ✓ | |
Kerberos 구성 | ✓ | |
엔드포인트 프로토콜(Thrift/gRPC) | ✓ | |
Thrift 포트 | ✓ | |
아티팩트 Cloud Storage 버킷 | ✓ | |
등급 | ✓ | |
유지보수 기간 | ✓ | |
출시 채널 | ✓ | |
Encryption 구성 | ✓ | |
데이터베이스 유형 | ✓ | |
Data Catalog 동기화 전환 | ✓ | |
요청 수 측정항목 | ✓ | |
네트워크 구성 | ✓ |
* Hive 구성 재정의는 보조 버전과 기본 버전 간에 별도로 유지됩니다. 그러나 보조 버전은 병합된 재정의 목록(기본+보조)을 참조합니다. 이 경우 보조 구성이 기본 구성보다 우선합니다.
시작하기 전에
필요한 역할
보조 버전을 사용하는 Dataproc Metastore를 만드는 데 필요한 권한을 얻으려면 최소 권한의 원칙에 따라 관리자에게 프로젝트에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Dataproc Metastore 리소스 전체 제어 권한 부여(
roles/metastore.editor
) -
IAM 정책 관리를 포함한 모든 Dataproc Metastore 리소스에 대한 전체 액세스 권한 부여(
roles/metastore.admin
)
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 보조 버전을 사용하는 Dataproc Metastore를 만드는 데 필요한 metastore.services.create
권한이 있습니다.
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
특정 Dataproc Metastore 역할 및 권한에 대한 상세 설명은 IAM으로 Dataproc 액세스 관리를 참조하세요.새 서비스의 보조 버전 만들기
다음 예시에서는 보조 버전을 사용 설정하기 위해 수행하는 단계를 요약해서 보여줍니다. 따라야 하는 전체 프로세스에 대한 자세한 단계별 안내는 Dataproc Metastore 만들기를 참조하세요.
콘솔
Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
Dataproc Metastore 페이지 상단에서 만들기 버튼을 클릭합니다.
서비스 만들기 페이지가 열립니다.
보조 버전 구성에서 보조 버전을 사용 설정합니다.
보조 버전 추가를 클릭합니다.
보조 버전의 이름을 입력합니다.
보조 버전의 버전을 선택합니다.
(선택사항) 보조 버전에 매핑을 적용하려면 + 재정의 추가를 클릭합니다.
완료를 클릭합니다.
필요에 따라 서비스에 대해 남은 구성을 선택합니다.
제출을 클릭합니다.
gcloud CLI
보조 버전을 사용하여 Dataproc Metastore 서비스를 만들려면 다음
gcloud metastore services create
명령어 중 하나를 실행합니다.gcloud metastore services create SERVICE \ --location=LOCATION \ --auxiliary-versions=AUXILIARY_VERSIONS, ...
SERVICE
: Dataproc Metastore 서비스 이름LOCATION
: Dataproc Metastore 서비스를 만들려는 리전입니다.AUXILIARY_VERSIONS
: 보조 버전에 배포할 쉼표로 구분된 Hive 메타스토어 버전 목록입니다. 보조 버전은 하나만 지원됩니다."2.3.6"
형식을 사용합니다.AUXILIARY_VERSIONS_FROM_FILE
: 보조 버전 구성이 포함된 YAML 파일의 경로. 자세한 내용과 예시는 SDK 문서를 참조하세요.
성공적으로 만들어졌는지 확인합니다.
curl
보조 버전을 사용하여 Dataproc Metastore 서비스를 만들려면 create
메서드를 사용합니다.
curl -X POST -s -i \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"network":"projects/PROJECT_ID/global/networks/default", "port": 9083, "hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION"} } } }' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services?service_id=SERVICE_ID
다음을 바꿉니다.
SERVICE_ID
: 새 Dataproc Metastore 서비스 이름입니다.PROJECT_ID
: Dataproc Metastore 서비스를 만들려는 Google Cloud 프로젝트 ID입니다.LOCATION
: Dataproc Metastore가 있는 리전입니다.AUX_VERSIONS
: 배포할 쉼표로 구분된 Hive Metastore 버전 목록입니다. 보조 버전은 하나만 지원됩니다.
기존 서비스의 보조 버전 업데이트
다음 안내에서는 보조 버전을 사용하는 기존 Dataproc Metastore 서비스를 업데이트하는 방법을 보여줍니다.
업데이트 작업을 실행할 때 다음 태스크를 완료할 수 있습니다.
- 새 보조 버전을 추가합니다.
- 기존 보조 버전을 삭제합니다.
기존 보조 버전의 재정의를 추가하거나 수정합니다.
콘솔
Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
Dataproc Metastore 페이지에서 업데이트하려는 서비스 이름을 클릭합니다.
서비스 세부정보 페이지가 열립니다.
구성 탭에서 수정을 클릭합니다.
서비스 수정 페이지가 열립니다.
보조 버전 구성 섹션에서 전환 버튼을 클릭하여 보조 버전을 사용 설정 또는 중지합니다.
다음 작업을 완료할 수 있습니다.
기존 보조 버전을 삭제하려면 삭제를 클릭합니다.
새 보조 버전을 추가하려면 보조 버전 추가를 클릭합니다.
보조 버전에 재정의 매핑을 적용하려면 + 재정의 추가를 클릭합니다.
제출을 클릭합니다.
gcloud CLI
보조 버전을 사용하는 Dataproc Metastore 서비스를 업데이트하려면 다음
gcloud metastore services update
명령어 중 하나를 실행합니다.gcloud metastore services update SERVICE \ --location=LOCATION \ --add-auxiliary-versions=AUXILIARY_VERSIONS, ...
사용하여
gcloud metastore services update SERVICE \ --location=LOCATION \ --update-auxiliary-versions-from-file=AUXILIARY_VERSIONS_FROM_FILE
다음을 바꿉니다.
SERVICE
: Dataproc Metastore 서비스 이름입니다.LOCATION
: Dataproc Metastore가 있는 리전입니다.AUXILIARY_VERSIONS
: 배포할 쉼표로 구분된 보조 Hive Metastore 버전 목록입니다.AUXILIARY_VERSIONS_FROM_FILE
: 보조 버전 구성이 포함된 YAML 파일의 경로. 자세한 내용과 예시는 SDK 문서를 참조하세요.
업데이트가 성공했는지 확인합니다.
curl
보조 버전을 사용하여 Dataproc Metastore 서비스를 업데이트하려면 patch
메서드를 사용합니다.
curl -X PATCH -s -i \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION} } } }' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE_ID?update_mask=hive_metastore_config.auxiliary_versions
다음을 바꿉니다.
SERVICE_ID
: Dataproc Metastore 서비스 이름입니다.PROJECT_ID
: Dataproc Metastore 서비스 클러스터를 만들려는 Google Cloud 프로젝트 ID입니다.LOCATION
: Dataproc Metastore가 있는 리전입니다.AUX_VERSIONS
: 배포할 쉼표로 구분된 보조 Hive Metastore 버전 목록입니다.