Conectar un clúster de Dataproc o autoadministrado

Después de crear un servicio de Dataproc Metastore, puedes adjuntar cualquiera de las siguientes opciones para usar el servicio como su almacén de metadatos de Hive:

Antes de comenzar

  • Para obtener una conectividad de red óptima, crea el clúster de Dataproc en la misma región que el servicio de Dataproc Metastore.

  • La imagen de Dataproc y la versión de Hive Metastore Hive deben ser compatibles. Verifica las siguientes páginas de control de versiones de imágenes para asegurarte de que la versión de Hive sea compatible:

    Para obtener más información, consulta la Lista de versiones con imágenes de Dataproc.

  • Para usar cualquier servicio de Dataproc Metastore, incluido uno en el mismo proyecto que el clúster de Dataproc, estos clústeres deben estar en la misma red. Un clúster también puede usar una subred de la red del servicio de Dataproc Metastore. Si el clúster de Dataproc pertenece a un proyecto diferente al de la red, debes configurar los permisos de red compartida.

  • Ten en cuenta que, si usas clústeres de Auth personales, debes usar un almacén de metadatos con gRPC habilitado. Si quieres obtener más información para convertir tu metastore en gRPC o crear un nuevo almacén de metadatos basado en gRPC, consulta Elige el protocolo de extremo.

Control de acceso

  • Asegúrate de que tu cuenta de servicio de VM de Dataproc tenga permisos de lectura y escritura de objetos para acceder al directorio del almacén de almacenes de Dataproc Metastore. Para obtener más información, consulta el directorio de almacenes de Hive.

  • Si trabajas con una implementación de varios proyectos, debes configurar permisos adicionales antes de crear un clúster de Dataproc Metastore. Una implementación entre proyectos puede consistir en dos o tres proyectos, con el clúster de Dataproc en un proyecto de clúster, el servicio de Dataproc Metastore en un proyecto de metastore y la red en cualquiera de los dos proyectos anteriores o en su propio proyecto de red. También es posible que el clúster de Dataproc y el servicio de Dataproc Metastore compartan un proyecto mientras la red se encuentra en su propio proyecto de red.

    En el siguiente diagrama, se proporciona una descripción general de las posibles configuraciones del proyecto cuando se implementa un clúster de Dataproc Metastore:

    Descripción general de las posibles configuraciones de proyectos cuando se implementa un clúster de Dataproc Metastore y Dataproc

    • Cuando se usa una red de VPC que pertenece a un proyecto diferente del servicio, debes proporcionar el nombre completo del recurso relativo en gcloud metastore services create SERVICE.

      gcloud metastore services create SERVICE \
          --network=projects/HOST_PROJECT/global/networks/NETWORK_ID
      

Adjuntar un clúster de Dataproc

Puedes crear y adjuntar un clúster de Dataproc que use el servicio de Dataproc Metastore como su almacén de metadatos de Hive.

Configura una implementación entre proyectos

Las implementaciones entre proyectos en las que el clúster de Dataproc y el servicio de Dataproc Metastore están en proyectos diferentes requieren una configuración de permisos. No necesitas realizar esta configuración para casos en los que el clúster de Dataproc y el servicio de Dataproc Metastore comparten un proyecto mientras la red se encuentra en su propio proyecto de red.

Después de configurar los permisos de red, debes otorgar la función de visualizador de Dataproc Metastore en el proyecto de metastore al agente de servicio de Dataproc del proyecto del clúster. La cuenta del agente de servicio de Dataproc tiene el formato service-<cluster-project-number>@dataproc-accounts.iam.gserviceaccount.com. Debes hacer referencia al número del proyecto del clúster.

Console

Para encontrar el número de proyecto, haz lo siguiente:

  1. Navega a la pestaña Configuración de IAM y administración.

  2. En la lista de proyectos en la parte superior de la página, selecciona el proyecto que usarás para crear el clúster de Dataproc.

  3. Anota el número del proyecto.

Configure los permisos:

  1. Navega a la pestaña IAM.

  2. Selecciona el proyecto de Metastore de la lista de proyectos que se encuentra en la parte superior de la página.

  3. Haga clic en Agregar.

    1. Ingresa la cuenta de servicio en el campo Principales nuevas.

    2. En el menú Funciones, selecciona Dataproc Metastore > Visualizador de Dataproc Metastore.

    3. Haga clic en Agregar.

Ahora puedes crear un clúster de Dataproc con el servicio y la red o subred de Dataproc Metastore del proyecto de Metastore.

Cree un clúster de Dataproc.

En las siguientes instrucciones, se muestra cómo crear y adjuntar un clúster de Dataproc.

Console

  1. En Cloud Console, abra la página Crear un clúster de Dataproc:

    Abrir la página Crear un clúster en Cloud Console

  2. Ingresa el campo Nombre del clúster.

  3. En los menús Región y Zona, selecciona una región y una zona para el clúster. Puedes seleccionar una región distinta para aislar las ubicaciones de recursos y metadatos de almacenamiento dentro de la región especificada. Si seleccionas una región distinta, puedes seleccionar “Sin preferencia” a fin de que la zona permita que Dataproc elija una zona dentro de la región seleccionada para tu clúster (consulta Ubicación de zona automática de Dataproc).

  4. Haga clic en la pestaña Personalizar clúster.

  5. En la sección Configuración de red, selecciona la misma red especificada durante la creación del servicio de almacén de metadatos.

  6. En la sección Dataproc Metastore, selecciona tu servicio de Metastore. Si todavía no creaste uno, puedes seleccionar Create New Service.

  7. Haga clic en Create para generar el clúster.

Tu clúster nuevo aparecerá en la lista de clústeres. El estado del clúster aparece como “Aprovisionando” hasta que esté listo para usarse. Luego, el estado cambia a "Running".

gcloud

Ejecuta el siguiente comando gcloud dataproc clusters create para crear un clúster:

 gcloud dataproc clusters create CLUSTER_NAME \
    --dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \
    --region=LOCATION
 

Reemplaza lo siguiente:

  • CLUSTER_NAME es el nombre del clúster nuevo.
  • PROJECT_ID: Es el ID del proyecto en el que creaste el servicio de Dataproc Metastore.
  • LOCATION: Es la misma región que especificaste para el servicio de Dataproc Metastore.
  • SERVICE: Es el nombre del servicio de Dataproc Metastore.

REST

Sigue las instrucciones de la API para crear un clúster mediante el Explorador de API.

Conecta un clúster de Dataproc con ENDPOINT_URI y WAREHOUSE_DIR

Puedes conectar un clúster de Dataproc mediante las propiedades ENDPOINT_URI y WAREHOUSE_DIR. Esto es útil si tu servicio de Dataproc Metastore usa Private Service Connect o si deseas adjuntar la versión auxiliar de tu servicio de Dataproc Metastore.

Para obtener más información sobre estas propiedades y dónde encontrarlas, consulta Cómo adjuntar un clúster autoadministrado.

Existen dos maneras de adjuntar un clúster de Dataproc mediante las propiedades ENDPOINT_URI y WAREHOUSE_DIR:

  • Opción 1: Proporciona la siguiente configuración de configuración de propiedades de Hive mientras creas el clúster de Dataproc.

    1. Ejecuta el siguiente comando gcloud dataproc clusters create:

         gcloud dataproc clusters create CLUSTER_NAME \
             --properties="hive:hive.metastore.uris=$ENDPOINT_URI,hive:hive.metastore.warehouse.dir=$WAREHOUSE_DIR/hive-warehouse"
      
  • Opción 2: Actualiza el hive-site.xml en el clúster de Dataproc con el URI del extremo que se muestra en NetworkConfig.

    1. Establece una conexión SSH al instancia de clúster principal de Dataproc y realiza lo siguiente:

      1. Modifica /etc/hive/conf/hive-site.xml en el clúster de Dataproc:

        <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>
        
      2. Reinicia HiveServer2:

        sudo systemctl restart hive-server2.service
        

Adjunta un clúster autoadministrado

Después de crear un servicio, puedes conectar un clúster autoadministrado de Apache Hive, Apache Spark o Presto que use el servicio como su almacén de metadatos de Hive. Para ello, configura lo siguiente en la configuración del cliente:

hive.metastore.uris=ENDPOINT_URI
hive.metastore.warehouse.dir=WAREHOUSE_DIR

Reemplaza lo siguiente:

  • ENDPOINT_URI: El URI del extremo del almacén de metadatos de Hive que se usa para acceder al servicio de almacén de metadatos.

    Para encontrar el valor de URI de extremo que se usará, haz clic en el nombre del servicio de tu servicio en la página Dataproc Metastore. Esto te lleva a la página Detalles del servicio de ese servicio, en la que puedes usar el valor de URL que comienza con thrift://.

  • WAREHOUSE_DIR: Se refiere al directorio de las anulaciones de configuración del almacén de metadatos de Hive. Puede seguir el formato gs://.*hive-warehouse.

    Para encontrar el directorio de almacén y usarlo, haz clic en el nombre del servicio de tu servicio en la página Dataproc Metastore. Esto te lleva a la página Detalles del servicio de ese servicio, en la que puedes usar el valor hive.metastore.warehouse.dir en Anulaciones de configuración del almacén de metadatos.

URL de detalles del servicio y valores hive.metastore.warehouse.dir

¿Qué sigue?