Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Connect Athena à un métastore Hive à l'aide d'un rôle d'exécution existant IAM
Pour connecter votre métastore Hive externe à Athena à l'aide d'une fonction Lambda qui utilise un IAM rôle existant, vous pouvez utiliser l'implémentation de référence d'Athena du connecteur Athena pour le métastore Hive externe.
Les trois étapes principales sont les suivantes :
-
Cloner et compiler : clonez l'implémentation de référence Athena et générez le JAR fichier contenant le code de fonction Lambda.
-
AWS Lambda console — Dans la AWS Lambda console, créez une fonction Lambda, attribuez-lui un rôle d'IAMexécution existant et téléchargez le code de fonction que vous avez généré.
-
Console Amazon Athena – Dans la console Amazon Athena, créez un nom de source de données que vous pourrez utiliser pour faire référence à votre métastore Hive externe dans vos requêtes Athena.
Si vous êtes déjà autorisé à créer un IAM rôle personnalisé, vous pouvez utiliser un flux de travail plus simple qui utilise la console Athena AWS Serverless Application Repository pour créer et configurer une fonction Lambda. Pour de plus amples informations, veuillez consulter Connect Athena à un metastore Apache Hive.
Prérequis
-
Git doit être installé sur votre système.
-
Vous devez avoir Apache Maven
installé. -
Vous disposez d'un rôle IAM d'exécution que vous pouvez attribuer à la fonction Lambda. Pour de plus amples informations, veuillez consulter Autorisation d'accès des fonctions Lambda aux métastores Hive externes.
Clonage et création de la fonction Lambda
Le code de fonction pour l'implémentation de référence Athena est un projet Maven situé sur GitHub awslabs/. aws-athena-hive-metastore
Clonage et création du code de fonction Lambda
-
Saisissez la commande suivante pour cloner l'implémentation de référence Athena :
git clone https://github.com/awslabs/aws-athena-hive-metastore
-
Exécutez la commande suivante pour créer le fichier
.jar
pour la fonction Lambda :mvn clean install
Une fois le projet crée avec succès, le fichier
.jar
suivant est créé dans le dossier cible de votre projet :hms-lambda-func-1.0-SNAPSHOT-withdep.jar
Dans la section suivante, vous allez utiliser la AWS Lambda console pour télécharger ce fichier sur votre compte Amazon Web Services.
Création et configuration de la fonction Lambda dans la console AWS Lambda
Dans cette section, vous allez utiliser la AWS Lambda console pour créer une fonction utilisant un rôle IAM d'exécution existant. Après avoir configuré un VPC pour la fonction, vous téléchargez le code de fonction et configurez les variables d'environnement pour la fonction.
Créer la fonction Lambda
Au cours de cette étape, vous créez une fonction dans la AWS Lambda console qui utilise un IAM rôle existant.
Pour créer une fonction Lambda qui utilise un rôle existant IAM
Connectez-vous à la AWS Lambda console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/lambda/
. -
Dans le volet de navigation, choisissez Fonctions.
-
Sélectionnez Create function (Créer une fonction).
-
Choisissez Créer à partir de zéro.
-
Dans Function name (Nom de la fonction), saisissez le nom de votre fonction Lambda (par exemple,
EHMSBasedLambda
). -
Pour Runtime (Exécution), choisissez Java 8.
-
Sous Permissions (Autorisations), développez Change default execution role (Modifier le rôle d'exécution par défaut).
-
Pour Execution role (Rôle d'exécution), choisissez Use an existing role (Utilisez un rôle existant).
-
Pour Rôle existant, choisissez le rôle IAM d'exécution que votre fonction Lambda utilisera pour Athena (cet exemple utilise un rôle appelé).
AthenaLambdaExecutionRole
-
Développez Advanced settings (Paramètres avancés).
-
Sélectionnez Enable Network (Activer le réseau).
-
Choisissez VPCen effet VPC celui auquel votre fonction aura accès.
-
Pour les sous-réseaux, choisissez les VPC sous-réseaux que Lambda doit utiliser.
-
Pour les groupes de sécurité, choisissez les groupes VPC de sécurité que Lambda doit utiliser.
-
Sélectionnez Create function (Créer une fonction). La AWS Lambda console ouvre la page de configuration de votre fonction et commence à créer votre fonction.
Chargement du code et configuration de la fonction Lambda
Lorsque la console vous informe que votre fonction a été créée avec succès, vous pouvez télécharger le code de la fonction et configurer ses variables d'environnement.
Téléchargement du code de votre fonction Lambda et configuration de ses variables d'environnement
-
Dans la console Lambda, assurez-vous que vous êtes sur l'onglet Code de la page de la fonction que vous avez spécifiée.
-
Pour Code source (Code source), choisissez Upload from (Charger depuis) puis choisissez .zip or .jar file (fichier .zip ou .jar).
-
Téléchargement du fichier
hms-lambda-func-1.0-SNAPSHOT-withdep.jar
généré précédemment. -
Sur la page de la fonction Lambda, choisissez l'onglet Configuration.
-
Dans le panneau de gauche, choisissez Environment variables (Variables d'environnement).
-
Dans la section Environment variables (Variables d'environnement), choisissez Edit (Modifier).
-
Sur la page Edit environment variables (Modifier les variables d'environnement), utilisez l'option Add environment variable (Ajouter une variable d'environnement) pour ajouter les clés et les valeurs des variables d'environnement suivantes :
-
HMS_ URIS — Utilisez la syntaxe suivante pour saisir le nom URI de votre hôte de métastore Hive qui utilise le protocole Thrift sur le port 9083.
thrift://
<host_name>
:9083 -
SPILL_ LOCATION — Spécifiez un emplacement Amazon S3 dans votre compte Amazon Web Services pour conserver les métadonnées dérivées si la taille de réponse de la fonction Lambda dépasse 4 Mo.
-
-
Choisissez Save (Enregistrer).
À ce stade, vous êtes prêt à configurer Athena pour qu'il utilise votre fonction Lambda afin de se connecter à votre métastore Hive. Pour les étapes, consultez Configuration d'Athena pour utiliser un connecteur de métastore Hive déployé.