Comment installer des bibliothèques de Tiers sur tous les nœuds d’un Cluster Amazon EMR en cours d'exécution ?

Utilisez AWS Systems Manager pour connecter les nœuds secondaires, puis exécutez un script bash pour télécharger les bibliothèques de tiers.

Remarque : Il est impossible d’utiliser des opérations bootstrap pour modifier un cluster en cours de fonctionnement. Les opérations ne sont pas non plus une option, car elles ne s’exécutent que sur le nœud maître. Vous pouvez vous connecter à chacun des nœuds et le modifier, mais cette opération est fastidieuse lors que le cluster contient de nombreux nœuds.

Créer un profil d’instance pour Systems Manager

1.    Ouvrez la console IAM.

2.    Dans le volet de navigation, sélectionnez Rôles, puis le rôle associé avec les instances EC2 de votre cluster EMR. Par défaut, le rôle est nommé EMR_EC2_DefaultRole.

3.    Dans l'onglet Permissions (Autorisations), choisissez Attach Policy (Associer une stratégie).

4.    Dans la page Associer une stratégie, sélectionnez la case à cocher en regard de AmazonEC2RoleforSSM, puis sélectionnez l’option Attach Policy (Associer la stratégie).

Installer les bibliothèques sur le nœud maître

1.    Connectez-vous au nœud maître à l'aide de SSH.

2.    Utilisez un script bash enregistré dans Amazon Simple Storage Service (Amazon S3) pour installer les bibliothèques sur le nœud maître. Dans l’exemple qui suit, le script utilise easy_install-3.4 pour installer pip. Ensuite, le script utilise pip pour installer paramiko, nltk, scipy, scikit-learn, et pandas pour le noyau Python 3 :

#!/bin/bash

sudo easy_install-3.4 pip
sudo /usr/local/bin/pip3 install paramiko nltk scipy scikit-learn pandas

Installer les bibliothèques sur les nœuds maître et de tâches

1.    Créez un script Python pour installer des bibliothèques sur les nœuds maître et de tâches. Pour avoir un exemple de script, voir la section Exemple d’installation de bibliothèques sur les nœuds principaux d’un cluster en cours de fonctionnement dans Utilisation de bibliothèques et installation de bibliothèques supplémentaires.

2.    Enregistrez le script sur votre machine locale ou sur une instance Amazon Elastic Compute Cloud (Amazon EC2).

3.    Exécutez une commande similaire à ce qui suit pour exécuter le script. Le script se sert de deux arguments : votre ID de cluster et l’emplacement S3 du script bash que vous avez créé au préalable.

python sample.py j-1K48XXXXXXHCB s3://mybucket/script-ssm.sh

Remarque : L’utilisateur ou le rôle IAM qui exécute le script doit détenir les autorisations appropriées pour Systems Manager. Pour plus d’informations, voir Configurer l’accès utilisateur pour Systems Manager.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Publié le 30-01-2019