Comment résoudre les problèmes liés à l'installation de bibliothèques Python sur mon cluster EMR ?

Lecture de 4 minute(s)
0

Je souhaite résoudre les problèmes liés à l'installation de bibliothèques Python sur mon cluster Amazon EMR

Brève description

J'essaie d'installer des bibliothèques Python sur mon cluster EMR, mais je rencontre l'un des problèmes suivants :

  • Je n'arrive pas à installer de bibliothèques Python sur mon cluster EMR.
  • Le package Python n'est pas disponible sur Amazon EMR.
  • Les packages Python installés ne sont pas disponibles sur les nœuds principaux ou de tâches récemment provisionnés.

Vous pouvez installer des bibliothèques Python sur des clusters EMR soit par une action d'amorçage, soit en vous connectant manuellement à chaque nœud. Installez les bibliothèques Python à l'aide d'actions d'amorçage pour vous assurer que les bibliothèques sont installées automatiquement sur tous les nœuds lors du provisionnement et du redimensionnement du cluster.

Solution

Je ne parviens pas à installer les bibliothèques Python sur mon cluster EMR ou le package Python n'est pas disponible sur Amazon EMR

Connectez-vous au nœud où l'erreur de package manquant s'est produite. Utilisez ensuite la commande suivante pour vérifier que les bibliothèques Python sont installées :

$ sudo pip3 freeze | grep pandas
pandas==1.3.5
$ sudo pip3 freeze | grep numpy
numpy==1.21.6

Vous pouvez également vérifier que les bibliothèques Python sont installées depuis le shell Python :

$ python
Python 3.7.15 (default, Oct 31 2022, 22:44:31)
[GCC 7.3.1 20180712 (Red Hat 7.3.1-15)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> import numpy as np

Si les commandes précédentes renvoient une erreur telle que ModuleNotFoundError : No module named 'python_library', cela signifie que la bibliothèque n'est pas installée.

Vous pouvez installer des bibliothèques Python sur des clusters EMR à l'aide de commandes pip, comme indiqué dans les exemples suivants :

sudo pip3 install pandas scipy sklearn
sudo pip3 install file://requirements.txt

Dans l'exemple précédent, requirements.txt est une liste de packages et de bibliothèques Python que vous souhaitez installer.

Pour plus d'informations, veuillez consulter les sections suivantes :

Pour installer des bibliothèques personnalisées supplémentaires, utilisez la commande pip install.

Python est installé dans Amazon EMR par défaut. Cependant, toutes les bibliothèques Python ne sont pas installées. Pour plus d'informations, consultez Installation et utilisation de noyaux et de bibliothèques.

Pour afficher la liste des bibliothèques Python installées sur le cluster, utilisez la commande sudo pip3 freeze. Voici un exemple de commande sudo pip3 freeze et un exemple de sortie :

$ sudo pip3 freeze
aws-cfn-bootstrap==2.0 
beautifulsoup4==4.9.3
boto==2.49.0 
click==8.1.3 
docutils==0.14 
jmespath==1.0.1 
joblib==1.2.0 l
ockfile==0.11.0 
lxml==4.9.1 
mysqlclient==1.4.2 
nltk==3.7 
nose==1.3.4 
numpy==1.20.0 
py-dateutil==2.2 
pystache==0.5.4 
python-daemon==2.2.3 
python37-sagemaker-pyspark==1.4.2 
pytz==2022.6
PyYAML==5.4.1 
regex==2021.11.10 
simplejson==3.2.0 
six==1.13.0 
tqdm==4.64.1 
windmill==1.6

Les packages Python ne sont pas disponibles sur le nœud principal ou de tâche récemment provisionné lors de la mise à l'échelle du cluster

Les packages Python installés manuellement sur des nœuds individuels peuvent ne pas être disponibles sur les nœuds principaux ou de tâches récemment provisionnés lors de la mise à l'échelle du cluster.

Pour vous assurer que les packages existent dans les nœuds récemment provisionnés, utilisez une action d'amorçage pour installer les bibliothèques au lieu de les installer manuellement.

Dans certains cas, le package souhaité n'est pas disponible malgré la présence d'un script d'amorçage pour l'installer. Dans ce cas, consultez les journaux des scripts d'amorçage pour déterminer la cause du problème. Pour consulter les journaux des scripts d'amorçage, procédez comme suit :

Si la nouvelle instance est en cours d'exécution :

1.    Connectez-vous au nœud principal via SSH.

2.    Consultez les journaux d'amorçage pour détecter les erreurs aux emplacements suivants :

  • /var/log/bootstrap-actions/N/stderr
  • /var/log/bootstrap-actions/N/stdout

Dans les chemins précédents,N représente le numéro du script d'amorçage (par exemple 1,2,3, etc.).

Si le provisionnement de la nouvelle instance a échoué :

Les journaux d'amorçage sont capturés dans le compartiment Amazon Simple Storage Service (Amazon S3) que vous avez configuré pour la journalisation Amazon EMR. Les chemins sont les suivants :

  • s3://DOC-EXAMPLE-LOG-BUCKET/cluster-id/node/instance-id/bootstrap-actions/N/stdout
  • s3://DOC-EXAMPLE-LOG-BUCKET/cluster-id/node/instance-id/bootstrap-actions/N/stderr

Dans les chemins précédents, N représente le numéro du script d'amorçage (par exemple, 1,2,3, etc.).


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an