Tu servicio de Dataproc Metastore proporciona acceso de cliente a los metadatos almacenados de Hive Metastore mediante un protocolo de extremo.
Puedes elegir el protocolo de extremo para que tu servicio de Dataproc Metastore coincida con tu preferencia de comunicación. Puedes elegir entre Apache Thrift o gRPC.
Thrift es el protocolo de extremo heredado y, por lo tanto, es la opción predeterminada. gRPC es más seguro y te permite usar integraciones federadas con otros productos de Google Cloud.
Configuración de red gRPC
No es necesario configurar la VPC compartida o establecer la configuración de red para los servicios basados en gRPC, ya que se puede acceder al extremo de gRPC desde cualquier VPC. La excepción es cuando el proyecto que contiene el servicio se encuentra en un perímetro de servicio de VPC-SC. En ese caso, se puede acceder al extremo desde cualquier VPC que pertenezca a proyectos en el perímetro.
Elige el protocolo de extremo para un servicio nuevo y existente de Dataproc Metastore
Puedes elegir el protocolo de extremo para tu servicio de Dataproc Metastore cuando lo crees o actualices con Google Cloud Console.
Elige el protocolo de extremo para un servicio nuevo
Sigue estos pasos para elegir el protocolo de extremo de un servicio nuevo:
Console
En Cloud Console, abre la página Dataproc Metastore:
En la parte superior de la página Dataproc Metastore haz clic en el botón Crear. Se abrirá la página Crear servicio.
Configura tu servicio como desees.
En Protocolo de extremos, selecciona Thrift o gRPC. Thrift es el protocolo de extremo predeterminado.
Haga clic en Submit.
gcloud
Ejecuta el siguiente comando
gcloud beta metastore services create
:gcloud beta metastore services create SERVICE \ --endpoint-protocol=ENDPOINT_PROTOCOL ; default="thrift"
Reemplaza lo siguiente:
SERVICE
: Es un nombre para tu servicio nuevo.ENDPOINT_PROTOCOL
: El protocolo que se usará para el extremo del servicio de Metastore. Puedes especificarthrift
ogrpc
.
Verifica que la creación se haya realizado correctamente.
Elige el protocolo de extremo para un servicio existente
Sigue estos pasos para elegir el protocolo de extremo de un servicio existente:
Console
En Cloud Console, abre la página Dataproc Metastore:
En la página Dataproc Metastore, haz clic en el nombre del servicio que quieres actualizar. Se abrirá la página Detalles del servicio de ese servicio.
En la pestaña Configuración, haz clic en el botón Editar. Se abrirá la página Editar servicio.
En la sección Protocolo de extremos, actualiza tu selección entre Thrift o gRPC.
Haz clic en el botón Enviar para actualizar el servicio.
gcloud
Ejecuta el siguiente comando
gcloud beta metastore services update
:gcloud beta metastore services update SERVICE \ --endpoint-protocol=ENDPOINT_PROTOCOL
Reemplaza lo siguiente:
SERVICE
: el nombre de tu servicio.ENDPOINT_PROTOCOL
: El protocolo que se usará para el extremo del servicio de Metastore. Puedes especificarthrift
ogrpc
.
Verifica que la actualización se haya realizado correctamente.
Después de elegir el protocolo del extremo
En el caso de los servicios habilitados para gRPC, el acceso a los metadatos almacenados se protege con permisos de IAM en bases de datos y tablas. Las funciones son las siguientes:
roles/metastore.metadataViewer
: Acceso de solo lectura a las políticas de IAM de metadatos y metadatosroles/metastore.metadataEditor
: Otorga acceso de lectura y escritura a los metadatos y acceso de solo lectura a las políticas de IAM de metadatos.roles/metastore.metadataOwner
: Otorga acceso de lectura y escritura a los metadatos y acceso de lectura y escritura a las políticas de IAM de metadatos.
Debes configurar la política de IAM para otorgar acceso a los recursos. Usa setIamPolicy
y getIamPolicies
para otorgar los permisos metastore.databases
y metastore.tables
.
Configurar la política de IAM para otorgar funciones de metadatos
En las siguientes instrucciones, se muestra cómo otorgar funciones de metadatos a nivel de la tabla y la base de datos.
gcloud
Para el acceso a nivel de la base de datos:
Ejecuta el siguiente comando de
gcloud metastore services databases
para otorgar funciones de metadatos a nivel de la base de datos:gcloud beta metastore services databases add-iam-policy-binding --project PROJECT --location LOCATION --service SERVICE_ID DATABASE_ID --role roles/metastore.metadataViewer --member="EMAIL_ID"
Para el acceso a nivel de tabla, sigue estos pasos:
Ejecuta el siguiente comando de
gcloud metastore services databases tables
para otorgar las funciones de metadatos a nivel de tabla:gcloud beta metastore services databases tables add-iam-policy-binding --project PROJECT --location LOCATION --service SERVICE_ID --database DATABASE_ID TABLE_ID --role roles/metastore.metadataViewer --member="EMAIL_ID"