Conexión de Athena a un almacén de metadatos de Hive mediante un rol de ejecución de IAM existente - Amazon Athena

Conexión de Athena a un almacén de metadatos de Hive mediante un rol de ejecución de IAM existente

Para conectar el metaalmacén externo de Hive a Athena con una función Lambda que utiliza un rol de IAM existente, puede utilizar la implementación de referencia de Athena del conector Athena para metaalmacén externo de Hive.

Los tres pasos principales son los siguientes:

  1. Clonar y crear: clone la implementación de referencia de Athena y cree el archivo JAR que contiene el código de función de Lambda.

  2. Consola AWS Lambda: en la consola AWS Lambda, cree una función Lambda, asígnele un rol de ejecución de IAM existente y cargue el código de función que generó.

  3. Consola de Amazon Athena: en la consola de Amazon Athena, cree un nombre de origen de datos que pueda utilizar para hacer referencia al metaalmacén externo de Hive en las consultas de Athena.

Si ya tiene permisos para crear un rol de IAM personalizado, puede utilizar un flujo de trabajo más simple que use la consola de Athena y el AWS Serverless Application Repository para crear y configurar una función Lambda. Para obtener más información, consulte Conexión de Athena al almacén de metadatos de Apache Hive.

Requisitos previos

Clonar y crear la función de Lambda

El código de función para la implementación de referencia de Athena es un proyecto Maven ubicado en GitHub en awslabs/aws-athena-hive-metastore. Para obtener información detallada sobre el proyecto, consulte el archivo README correspondiente en GitHub o el tema Implementación de referencia en esta documentación.

Para clonar y crear el código de la función Lambda
  1. Ingrese el siguiente comando para clonar la implementación de referencia de Athena:

    git clone https://github.com/awslabs/aws-athena-hive-metastore
  2. Ejecute el siguiente comando para crear el archivo .jar para la función Lambda:

    mvn clean install

    Una vez creado el proyecto correctamente, se crea el siguiente archivo .jar en la carpeta de destino del proyecto:

    hms-lambda-func-1.0-SNAPSHOT-withdep.jar

    En la siguiente sección, utilizará la consola AWS Lambda para cargar este archivo en la cuenta de Amazon Web Services.

Crear y configurar la función de Lambda en la consola de AWS Lambda

En esta sección, utilizará la consola de AWS Lambda para crear una función que utilice un rol de ejecución de IAM existente. Después de configurar una VPC para la función, cargue el código de función y configure las variables de entorno para la función.

Crear la función de Lambda

En este paso, creará una función en la consola de AWS Lambda que utiliza un rol de IAM existente.

Para crear una función Lambda que utiliza un rol de IAM existente
  1. Inicie sesión en la AWS Management Console y abra la consola AWS Lambda en https://console.aws.amazon.com/lambda/.

  2. Seleccione Funciones en el panel de navegación.

  3. Elija Crear función.

  4. Elija Crear desde cero.

  5. En Function name (Nombre de función), ingrese el nombre de la función Lambda (por ejemplo, EHMSBasedLambda).

  6. En Runtime (Tiempo de ejecución), elija Java 8.

  7. En Permissions (Permisos), expanda Change default execution role(Cambiar rol de ejecución predeterminado).

  8. En Execution role (Rol de ejecución), elija Use an existing role (Usar un rol existente).

  9. En Existing role (Rol existente), elija el rol de ejecución de IAM que utilizará la función Lambda para Athena (en este ejemplo, se utiliza un rol llamado AthenaLambdaExecutionRole).

  10. Amplíe Advanced settings (Configuración avanzada).

  11. Seleccione Enable Network (Habilitar red).

  12. En VPC, elija la VPC a la que tendrá acceso la función.

  13. En Subnets (Subredes), elija las subredes de la VPC que utilizará Lambda.

  14. En Security groups (Grupos de seguridad), elija los grupos de seguridad de VPC que utilizará Lambda.

  15. Elija Crear función. La consola de AWS Lambda abre la página de configuración de la función y comienza a crear la función.

Cargue el código y configure la función de Lambda

Cuando la consola le informe de que se ha creado la función correctamente, estará listo para cargar el código de función y configurar sus variables de entorno.

Para cargar el código de la función Lambda y configurar sus variables de entorno
  1. En la consola de Lambda, asegúrese de estar en la pestaña Code (Código) de la función que especificó.

  2. En Code source (Código fuente), elija Upload from (Cargar desde) y, a continuación, .zip or .jar file (Archivo .zip o .jar).

  3. Cargue el archivo hms-lambda-func-1.0-SNAPSHOT-withdep.jar que generó anteriormente.

  4. En la página de la función de Lambda, seleccione la opciónConfiguraciónPestaña.

  5. En el panel de la izquierda, elija Environment variables (Variables de entorno).

  6. En la sección Variables de entorno, elija Editar.

    Elija Edit (Editar) para editar las variables de entorno de la función Lambda.
  7. En la página Edit environment variables (Editar variables de entorno), use la opción Add environment variable (Agregar variable de entorno) para agregar los siguientes valores y claves de variable de entorno:

    • HMS_URIS: utilice la siguiente sintaxis para ingresar el URI de su host del metaalmacén de Hive que utiliza el protocolo Thrift en el puerto 9083.

      thrift://<host_name>:9083
    • SPILL_LOCATION: especifique una ubicación de Amazon S3 en la cuenta de Amazon Web Services para contener los metadatos de desbordamiento si el tamaño de la respuesta de la función de Lambda supera los 4 MB.

      Especificar valores para las variables de entorno de la función Lambda.
  8. Elija Guardar.

En este punto, lo tiene todo listo para configurar Athena para que utilice la función de Lambda para conectarse al metaalmacén de Hive. Para ver los pasos, consulte Configuración de Athena para utilizar un conector de almacén de metadatos de Hive implementado.