Come posso risolvere i problemi dell'installazione delle librerie Python sul mio cluster EMR?
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:
- Installing packages in the Python packaging user guide (Installazione dei pacchetti nella guida per l'utente sui pacchetti di Python)
- Installazione e utilizzo di kernel e librerie
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).
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 3 anni fa