Dataproc Metastore 서비스를 만든 후에는 다음 서비스를 연결할 수 있습니다.
- Dataproc 클러스터
- 자체 관리형 Apache Hive 인스턴스, Apache Spark 인스턴스, Presto 클러스터
이러한 서비스 중 하나를 연결하면 쿼리 실행 중 Dataproc Metastore 서비스를 Hive 메타스토어로 사용합니다.
시작하기 전에
- 프로젝트에서 Dataproc Metastore를 사용 설정하세요.
- Dataproc Metastore 서비스를 만드세요.
- 프로젝트별 네트워킹 요구사항을 숙지하세요.
필요한 역할
Dataproc Metastore 및 Dataproc 클러스터를 만드는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Dataproc Metastore 리소스의 전체 제어에는 다음 역할 중 하나 필요:
-
사용자 계정 또는 서비스 계정의 Dataproc Metastore 편집자 역할(
roles/metastore.editor
) -
사용자 계정 또는 서비스 계정의 Dataproc Metastore 관리자 역할(
roles/metastore.admin
)
-
사용자 계정 또는 서비스 계정의 Dataproc Metastore 편집자 역할(
- Dataproc 클러스터를 만들려는 경우: Dataproc VM 서비스 계정에 대한
roles/dataproc.worker
- Hive 웨어하우스 디렉터리에 읽기/쓰기 권한을 부여하려는 경우: Dataproc VM 서비스 계정에 대한
roles/storage.objectAdmin
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 Dataproc Metastore 및 Dataproc 클러스터를 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
Dataproc Metastore 및 Dataproc 클러스터를 만들려면 다음 권한이 필요합니다.
-
Dataproc Metastore를 만들려면 사용자 계정 또는 서비스 계정에 대한
metastore.services.create
권한이 필요합니다. -
Dataproc 클러스터를 만드는 데 필요한 권한: 사용자 계정 또는 서비스 계정에
dataproc.clusters.create
-
Hive 웨어하우스 디렉터리에 액세스하려면 필요한 권한: Dataproc VM 서비스 계정에
orgpolicy.policy.get1
,resourcemanager.projects.get
,resourcemanager.projects.list
,storage.objects.*
,storage.multipartUploads.*
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
특정 Dataproc Metastore 역할 및 권한에 대한 상세 설명은 IAM으로 액세스 관리를 참조하세요.Dataproc 클러스터
Dataproc은 일괄 처리, 쿼리, 스트리밍, 머신러닝에 오픈소스 데이터 도구를 사용할 수 있는 관리형 Apache Spark 및 Apache Hadoop 서비스입니다.
고려사항
Dataproc 클러스터를 만들고 연결하기 전 Dataproc Metastore 서비스에 사용되는 엔드포인트 프로토콜을 확인합니다. 이 프로토콜은 Hive Metastore 클라이언트가 Dataproc Metastore에 저장된 메타데이터에 액세스하는 방법을 정의합니다. 이 옵션은 서비스에 통합 및 사용할 수 있는 기능에도 영향을 줍니다.
Apache Thrift
Apache Thrift 엔드포인트 프로토콜을 사용할 경우 다음 네트워크 요구사항을 고려합니다.
기본적으로 Dataproc 클러스터 및 Dataproc Metastore 서비스를 동일한 네트워크에 만들어야 합니다. 또한 Dataproc 클러스터는 Dataproc Metastore 서비스 네트워크의 서브넷을 사용할 수 있습니다.
Dataproc 클러스터가 네트워크와 다른 프로젝트에 속하면 공유 네트워크 권한을 구성해야 합니다.
Dataproc 클러스터가 Dataproc Metastore 서비스와 다른 프로젝트에 속하는 경우 Dataproc 클러스터를 만들기 전 추가 권한을 설정해야 합니다.
gRPC
gRPC 엔드포인트 프로토콜을 사용하는 경우 다음 네트워크 요구사항을 고려합니다.
gRPC 엔드포인트 프로토콜을 사용하여 Dataproc Metastore를 만든 후에는 추가 IAM 역할을 부여해야 합니다.
Dataproc 개인 클러스터 인증을 사용하는 경우 Dataproc Metastore가 gRPC 엔드포인트 프로토콜을 사용해야 합니다.
Dataproc 클러스터가 Dataproc Metastore 서비스와 다른 프로젝트에 속하는 경우 Dataproc 클러스터를 만들기 전 추가 권한을 설정해야 합니다.
클러스터 만들기 및 Dataproc Metastore 연결
다음 안내에서는 Dataproc 클러스터를 만들고 이를 Dataproc Metastore 서비스에 연결하는 방법을 보여줍니다. 이러한 안내에서는 Dataproc Metastore 서비스를 이미 만들었다고 가정합니다.
- Dataproc 클러스터를 만들기 전 선택한 Dataproc 이미지가 Dataproc Metastore를 만들 때 선택한 Hive Metastore 버전과 호환되는지 확인합니다. 자세한 내용은 Dataproc 이미지 버전 목록을 참조하세요.
네트워크 연결을 최적화하려면 Dataproc Metastore 서비스와 동일한 리전에 Dataproc 클러스터를 만듭니다.
콘솔
Google Cloud 콘솔에서 Dataproc 클러스터 만들기 페이지를 엽니다.
클러스터 만들기를 엽니다.
클러스터 이름 필드에 클러스터 이름을 입력합니다.
리전 및 영역 메뉴에서 Dataproc Metastore 서비스를 만든 동일한 리전을 선택합니다. 모든 영역을 선택할 수 있습니다.
클러스터 맞춤설정 탭을 클릭합니다.
네트워크 구성 섹션에서 Dataproc Metastore 서비스를 만든 동일한 네트워크를 선택합니다.
Dataproc Metastore 섹션에서 연결하려는 Dataproc Metastore 서비스를 선택합니다. 아직 서비스를 만들지 않은 경우 새 서비스 만들기를 선택합니다.
선택사항: Dataproc Metastore 서비스에 gRPC 엔드포인트 프로토콜이 사용되는 경우:
- 보안 관리 탭을 클릭합니다.
- 프로젝트 액세스 섹션에서 이 클러스터에 클라우드 플랫폼 범위 사용 설정을 선택합니다.
필요에 따라 남은 서비스 옵션을 구성합니다.
만들기를 클릭하여 클러스터를 만듭니다.
새 클러스터가 클러스터 목록에 표시됩니다. 클러스터를 사용할 준비가 될 때까지 클러스터 상태가 프로비저닝으로 나열됩니다. 사용할 준비가 되면 상태가 실행 중으로 변경됩니다.
gcloud CLI
클러스터를 만들고 Dataproc Metastore를 연결하려면 다음 gcloud dataproc clusters create
명령어를 실행합니다.
gcloud dataproc clusters create CLUSTER_NAME \ --dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \ --region=LOCATION \ --scopes=SCOPES
다음을 바꿉니다.
CLUSTER_NAME
: 새 Dataproc 클러스터 이름입니다.PROJECT_ID
: Dataproc Metastore 서비스를 만든 프로젝트의 프로젝트 ID입니다.LOCATION
: Dataproc Metastore 서비스를 만든 동일한 리전입니다.SERVICE
: 클러스터에 연결하려는 Dataproc Metastore 서비스의 이름입니다.SCOPES
: (선택사항) Dataproc Metastore 서비스에 gRPC 엔드포인트 프로토콜이 사용되는 경우cloud-platform
을 사용합니다.
REST
API 안내에 따라 API 탐색기를 사용하여 클러스터를 만듭니다.
Dataproc 클러스터 속성을 사용하여 클러스터 연결
또한 Dataproc 속성을 사용하여 Dataproc 클러스터를 Dataproc Metastore에 연결할 수 있습니다.
이러한 속성에는 Dataproc Metastore ENDPOINT_URI
및 WAREHOUSE_DIR
이 포함됩니다.
Dataproc Metastore 서비스에 Private Service Connect에 사용되거나 Dataproc 클러스터를 Dataproc Metastore 서비스의 보조 버전에 연결하려는 경우 안내를 따릅니다.
ENDPOINT_URI
속성과 WAREHOUSE_DIR
속성을 사용하여 Dataproc 클러스터를 연결하는 방법에는 두 가지가 있습니다.
옵션 1: Dataproc 클러스터 만들기
Dataproc 클러스터를 만들 때 다음 Hive 구성과 함께 속성 플래그를 사용합니다.
gcloud dataproc clusters create CLUSTER_NAME \ --properties="hive:hive.metastore.uris=ENDPOINT_URI,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR/hive-warehouse"
다음을 바꿉니다.
CLUSTER_NAME
: 새 Dataproc 클러스터 이름입니다.ENDPOINT_URI
: Dataproc Metastore 서비스의 엔드포인트 URI입니다.WAREHOUSE_DIR
: Hive 웨어하우스 디렉터리의 위치입니다.
옵션 2: hive-site.xml
파일 업데이트
또한 클러스터의 hive-site.xml
파일을 직접 수정하여 Dataproc 클러스터를 연결할 수 있습니다.
- SSH를 사용하여
.*-m
클러스터에 연결합니다. /etc/hive/conf/hive-site.xml
파일을 열고 다음 줄을 수정합니다.<property> <name>hive.metastore.uris</name> <!-- Update this value. --> <value>ENDPOINT_URI</value> </property> <!-- Add this property entry. --> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>
다음을 바꿉니다.
ENDPOINT_URI
: Dataproc Metastore 서비스의 엔드포인트 URI입니다.WAREHOUSE_DIR
: Hive 웨어하우스 디렉터리의 위치입니다.
HiveServer2를 다시 시작합니다.
sudo systemctl restart hive-server2.service
자체 관리형 클러스터
자체 관리형 클러스터는 Apache Hive 인스턴스, Apache Spark 인스턴스, Presto 클러스터일 수 있습니다.
자체 관리형 클러스터 연결
클라이언트 구성 파일에 다음 값을 설정합니다.
hive.metastore.uris=ENDPOINT_URI
hive.metastore.warehouse.dir=WAREHOUSE_DIR
다음을 바꿉니다.
ENDPOINT_URI
: Dataproc Metastore 서비스의 엔드포인트 URI입니다.WAREHOUSE_DIR
: Hive 웨어하우스 디렉터리의 위치입니다.