Installazione e utilizzo di kernel e librerie in Studio EMR - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Installazione e utilizzo di kernel e librerie in Studio EMR

Ogni EMR notebook viene fornito con un set di librerie e kernel preinstallati. È possibile installare librerie e kernel aggiuntivi in un EMR cluster se il cluster ha accesso al repository in cui si trovano i kernel e le librerie. Ad esempio, per i cluster in sottoreti private, potrebbe essere necessario configurare la traduzione degli indirizzi di rete (NAT) e fornire un percorso per consentire al cluster di accedere all'archivio pubblico PyPI per installare una libreria. Per ulteriori informazioni sulla configurazione dell'accesso esterno per diverse configurazioni di rete, consulta Scenari ed esempi nella Amazon VPC User Guide.

Nota

EMRI notebook sono disponibili come spazi di lavoro EMR Studio nella console. Il pulsante Crea area di lavoro nella console consente di creare nuovi taccuini. Per accedere o creare aree di lavoro, gli utenti di EMR Notebooks necessitano di autorizzazioni di ruolo aggiuntive. IAM Per ulteriori informazioni, consulta Amazon EMR Notebooks are Amazon EMR Studio Workspace nella console e nella console Amazon. EMR

EMRLe applicazioni serverless sono dotate delle seguenti librerie preinstallate per Python e: PySpark

  • Librerie Python — ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, scipy

  • PySpark librerie — ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, scipy

Installazione di kernel e librerie Python su un nodo primario del cluster

Con la EMR versione 5.30.0 e successive di Amazon, esclusa la 6.0.0, puoi installare librerie e kernel Python aggiuntivi sul nodo primario del cluster. Dopo l'installazione, questi kernel e librerie sono disponibili per tutti gli utenti che utilizzano un notebook collegato al cluster. EMR Le librerie Python installate in questo modo sono disponibili solo per i processi in esecuzione sul nodo primario. Le librerie non sono installate nei nodi principali o attività e non sono disponibili per gli executor in esecuzione su tali nodi.

Nota

Per EMR le versioni Amazon 5.30.1, 5.31.0 e 6.1.0, è necessario eseguire passaggi aggiuntivi per installare kernel e librerie sul nodo primario di un cluster.

Per abilitare questa funzione, procedi come segue:

  1. Assicurati che la politica di autorizzazione allegata al ruolo di servizio per Notebooks consenta le seguenti azioni: EMR

    elasticmapreduce:ListSteps

    Per ulteriori informazioni, consulta Ruolo di servizio per notebook. EMR

  2. Utilizzate il AWS CLI per eseguire un passaggio sul cluster che configura EMR Notebooks, come illustrato nell'esempio seguente. È necessario utilizzare il nome della fase EMRNotebooksSetup. Replace (Sostituisci) us-east-1 con la regione in cui risiede il cluster. Per ulteriori informazioni, consulta Aggiunta di fasi a un cluster con la AWS CLI.

    aws emr add-steps --cluster-id MyClusterID --steps Type=CUSTOM_JAR,Name=EMRNotebooksSetup,ActionOnFailure=CONTINUE,Jar=s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://awssupportdatasvcs.com/bootstrap-actions/EMRNotebooksSetup/emr-notebooks-setup.sh"]

Puoi installare kernel e librerie eseguendo pip o conda nella directory /emr/notebook-env/bin sul nodo primario.

Esempio - Installazione di librerie Python

Dal kernel Python3, esegui il %pip magic come un comando dall'interno di una cella del notebook per installare librerie Python.

%pip install pmdarima

Potrebbe essere necessario riavviare il kernel per utilizzare i pacchetti aggiornati. Puoi anche utilizzare %%sh magic Spark per invocare pip.

%%sh /emr/notebook-env/bin/pip install -U matplotlib /emr/notebook-env/bin/pip install -U pmdarima

Quando si utilizza un PySpark kernel, è possibile installare le librerie sul cluster utilizzando pip i comandi oppure utilizzare librerie con ambito notebook dall'interno di un notebook. PySpark

Per eseguire pip i comandi sul cluster dal terminale, connettetevi innanzitutto al nodo primario utilizzandoSSH, come dimostrano i seguenti comandi.

sudo pip3 install -U matplotlib sudo pip3 install -U pmdarima

In alternativa, puoi utilizzare librerie con ambito notebook. Con le librerie con ambito notebook, l'installazione della libreria è limitata all'ambito della sessione e si verifica su tutti gli executor Spark. Per ulteriori informazioni, consulta Utilizzo di librerie con ambito notebook.

Se vuoi impacchettare più librerie Python all'interno di un PySpark kernel, puoi anche creare un ambiente virtuale Python isolato. Per esempi, vedete Uso Virtualenv.

Per creare un ambiente virtuale Python in una sessione, utilizza la proprietà Spark spark.yarn.dist.archives dal comando %%configure magic nella prima cella di un notebook, come illustrato nell'esempio seguente.

%%configure -f { "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://amzn-s3-demo-bucket/prefix/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" } }

Puoi creare allo stesso modo un ambiente executor Spark.

%%configure -f { "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.executorEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://amzn-s3-demo-bucket/prefix/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" } }

Puoi utilizzare anche conda per installare librerie Python. Per utilizzare conda non è necessario l'accesso sudo. È necessario connettersi al nodo primario conSSH, e quindi eseguire conda dal terminale. Per ulteriori informazioni, consulta Connect al nodo primario del cluster Amazon EMR tramite SSH.

Esempio - Installazione di kernel

L'esempio seguente illustra l'installazione del kernel Kotlin utilizzando un comando del terminale mentre è connesso al nodo primario di un cluster:

sudo /emr/notebook-env/bin/conda install kotlin-jupyter-kernel -c jetbrains
Nota

Queste istruzioni non prevedono l'installazione delle dipendenze del kernel. Se il kernel ha dipendenze di terze parti, potrebbe essere necessario eseguire ulteriori passaggi di configurazione prima di poterlo utilizzare con il notebook.

Considerazioni e limitazioni relative alle librerie con ambito notebook

Quando utilizzi le librerie con ambito notebook, tieni presente quanto segue:

  • Le librerie con ambito notebook sono disponibili per i cluster creati con le versioni 5.26.0 e successive di Amazon. EMR

  • Le librerie con ambito notebook sono pensate per essere utilizzate solo con il kernel. PySpark

  • Qualsiasi utente può installare ulteriori librerie con ambito notebook dall'interno di una cella di notebook. Queste librerie sono disponibili solo per tale utente del notebook durante una singola sessione di notebook. Se altri utenti richiedono le stesse librerie o lo stesso utente richiede le stesse librerie in una sessione diversa, è necessario reinstallare la libreria.

  • È possibile disinstallare solo le librerie installate con. install_pypi_package API Non è possibile disinstallare le librerie preinstallate nel cluster.

  • Se nel cluster sono installate versioni diverse delle stesse librerie come librerie con ambito notebook, la versione della libreria con ambito notebook sostituisce la versione della libreria del cluster.

Lavorare con le librerie con ambito notebook

Per installare le librerie, il tuo EMR cluster Amazon deve avere accesso all'archivio PyPI in cui si trovano le librerie.

Gli esempi seguenti mostrano semplici comandi per elencare, installare e disinstallare le librerie dall'interno di una cella di un notebook utilizzando il PySpark kernel e. APIs Per altri esempi, consulta il post Installa le librerie Python su un cluster in esecuzione con EMR Notebooks sul blog Big Data. AWS

Esempio - Elenco delle librerie correnti

Il comando riportato di seguito elenca i pacchetti Python disponibili per la sessione Spark corrente del notebook. Questo comando elenca le librerie installate nel cluster e le librerie con ambito notebook.

sc.list_packages()
Esempio - Installazione della libreria Celery

Il comando seguente installa la libreria Celery come libreria con ambito notebook.

sc.install_pypi_package("celery")

Dopo l'installazione della libreria, il comando seguente conferma che la libreria è disponibile sul driver e sugli executor Spark.

import celery sc.range(1,10000,1,100).map(lambda x: celery.__version__).collect()
Esempio - Installazione della libreria Arrow, specifica della versione e del repository

Il comando seguente installa la libreria Arrow come libreria con ambito notebook, con una specifica della versione e del repository della libreria. URL

sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")
Esempio - Disinstallazione di una libreria

Il comando seguente disinstalla la libreria Arrow rimuovendola come libreria con ambito notebook dalla sessione corrente.

sc.uninstall_package("arrow")