Come posso risolvere i problemi dell'installazione delle librerie Python sul mio cluster EMR?

4 minuti di lettura
0

Vorrei risolvere i problemi dell'installazione delle librerie Python sul mio cluster Amazon EMR

Breve descrizione

Sto cercando di installare le librerie Python sul mio cluster EMR, ma riscontro uno dei seguenti problemi:

  • Non riesco a installare le librerie Python sul mio cluster EMR.
  • Il pacchetto Python non è disponibile su Amazon EMR.
  • I pacchetti Python installati non sono disponibili sui nodi principali o sui nodi attività su cui è appena stato realizzato il provisioning.

È possibile installare le librerie Python sui cluster EMR utilizzando un'operazione di bootstrap o accedendo manualmente a ciascun nodo. Installa le librerie Python utilizzando le operazioni di bootstrap per assicurarti che l'installazione avvenga automaticamente su tutti i nodi durante il provisioning e il ridimensionamento del cluster.

Risoluzione

Non riesco a installare le librerie Python sul mio cluster EMR oppure il pacchetto Python non è disponibile su Amazon EMR

Accedi al nodo in cui si è verificato l'errore relativo al pacchetto mancante. Quindi, utilizza il seguente comando per verificare che le librerie Python siano installate:

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

Oppure, verifica che le librerie Python siano installate dalla shell (interprete di comandi) 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

Se i comandi precedenti restituiscono un errore come ModuleNotFoundError: No module named 'python_library', la libreria non è installata.

Puoi installare le librerie Python sui cluster EMR utilizzando i comandi pip, come mostrato nei seguenti esempi:

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

Nell'esempio precedente, requirements.txt è un elenco di pacchetti e librerie Python che vuoi installare.

Per ulteriori informazioni, consulta quanto segue:

Per installare librerie personalizzate aggiuntive, usa il comando pip install.

Python è installato in Amazon EMR di default. Tuttavia, non tutte le librerie Python sono installate. Per ulteriori informazioni, vedi Installazione e utilizzo di kernel e librerie.

Per visualizzare un elenco delle librerie Python installate nel cluster, utilizza il comando sudo pip3 freeze. Di seguito sono riportati un esempio del comando sudo pip3 freeze e un output di esempio:

$ 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

I pacchetti Python non sono disponibili sul nodo principale e sul nodo attività su cui è appena stato realizzato il provisioning durante il dimensionamento del cluster

I pacchetti Python installati manualmente sui singoli nodi potrebbero non essere disponibili sui nodi principali o sui nodi attività su cui è appena stato realizzato il provisioning durante il dimensionamento del cluster.

Per assicurarti che i pacchetti siano disponibili nei nodi su cui è appena stato realizzato il provisioning, utilizza un'operazione di bootstrap per installare le librerie invece del procedimento di installazione manuale.

Talvolta può capitare che il pacchetto desiderato non sia disponibile nonostante sia presente uno script di bootstrap per installarlo. In questi casi, controlla i log degli script di bootstrap per capire cosa è andato storto. Per controllare i log degli script di bootstrap, procedi come segue:

Se la nuova istanza è in esecuzione:

1.    Connettiti al nodo primario tramite SSH.

2.    Controlla i log di bootstrap per verificare la presenza di errori nelle seguenti posizioni:

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

Nei percorsi precedenti, N rappresenta il numero degli script di bootstrap (ad esempio 1, 2, 3 e così via).

Se il provisioning della nuova istanza non è riuscito:

I log di bootstrap vengono acquisiti nel bucket di Amazon Simple Storage Service (Amazon S3) che hai configurato per la registrazione di Amazon EMR. I percorsi sono:

  • 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

Nei percorsi precedenti, N rappresenta il numero degli script di bootstrap (ad esempio 1, 2, 3 e così via).


AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa