

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 EMR Studio
<a name="emr-managed-notebooks-installing-libraries-and-kernels"></a>

Ogni notebook EMR viene fornito con un set di librerie e kernel preinstallati. Puoi installare librerie e kernel aggiuntivi in un cluster EMR se il cluster dispone dell'accesso al repository in cui si trovano i kernel e le librerie. Ad esempio, per i cluster in sottoreti private, potrebbe essere necessario configurare Network Address Translation (NAT) e fornire un percorso per il cluster per accedere al repository PyPI pubblico per installare una libreria. Per ulteriori informazioni sulla configurazione dell'accesso esterno per diverse configurazioni di rete, consulta [Scenari ed esempi](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenarios.html) nella *Guida per l'utente di Amazon VPC*.

**Nota**  
I notebook EMR sono disponibili come aree di lavoro EMR Studio nella console. Il pulsante **Crea area di lavoro** nella console consente di creare nuovi notebook. Per accedere ai Workspace o crearne di nuovi, gli utenti di Notebook EMR necessitano di ulteriori autorizzazioni per i ruoli IAM. [Per ulteriori informazioni, consulta [Amazon EMR Notebooks are Amazon EMR Studio Workspace nella console e nella console Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html).](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html)<a name="emr-managed-notebooks-serverless"></a>

Le applicazioni EMR 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
<a name="emr-managed-notebooks-cluster-kernel"></a>

Con Amazon EMR versione 5.30.0 e successive, esclusa la versione 6.0.0, puoi installare librerie e kernel Python aggiuntivi sul nodo primario del cluster. Dopo l'installazione, questi kernel e librerie sono disponibili a ogni utente che esegue un notebook EMR collegato al cluster. 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 le versioni Amazon EMR 5.30.1, 5.31.0 e 6.1.0, devi eseguire ulteriori passaggi per installare kernel e librerie nel nodo primario di un cluster.   
Per abilitare questa funzione, procedi come segue:  
Assicurati che le policy di autorizzazione associate al ruolo di servizio per EMR Notebooks consentano l'operazione seguente:  
`elasticmapreduce:ListSteps`  
Per ulteriori informazioni, consulta il [Ruolo di servizio per EMR Notebooks](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-service-role.html).
Utilizzare AWS CLI per eseguire un passaggio sul cluster che configura EMR Notebooks, come illustrato nell'esempio seguente. È necessario utilizzare il nome della fase `EMRNotebooksSetup`. 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](https://docs.aws.amazon.com/emr/latest/ManagementGuide/add-step-cli.html).  

   ```
   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. 

**Example - 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 [https://ipython.readthedocs.io/en/stable/interactive/magics.html#cellmagic-sh](https://ipython.readthedocs.io/en/stable/interactive/magics.html#cellmagic-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 comandi `pip` sul cluster dal terminale, prima esegui la connessione al nodo primario utilizzando SSH, come illustrato nei 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](#emr-managed-notebooks-custom-libraries-limitations).   
Se vuoi impacchettare più librerie Python all'interno di un PySpark kernel, puoi anche creare un ambiente virtuale Python isolato. Per esempi di utilizzo, consulta [Utilizzo di Virtualenv](https://spark.apache.org/docs/latest/api/python/tutorial/python_packaging.html#using-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. Devi connetterti al nodo primario con SSH e quindi eseguire `conda` dal terminale. Per ulteriori informazioni, consulta [Connect al nodo primario del cluster Amazon EMR tramite SSH](emr-connect-master-node-ssh.md). 

**Example - 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
```
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
<a name="emr-managed-notebooks-custom-libraries-limitations"></a>

Quando utilizzi le librerie con ambito notebook, tieni presente quanto segue:
+ Le librerie con ambito notebook sono disponibili con i cluster creati utilizzando 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 che sono state installate con l'API `install_pypi_package`. 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
<a name="emr-managed-notebooks-work-with-libraries"></a>

Per installare le librerie, il cluster Amazon EMR deve avere accesso al repository PyPI in cui queste si trovano.

Gli esempi seguenti mostrano semplici comandi per elencare, installare e disinstallare le librerie dall'interno di una cella del notebook utilizzando il kernel e. PySpark APIs Per altri esempi, consulta [il post Installare le librerie Python su un cluster in esecuzione con EMR Notebooks](https://aws.amazon.com/blogs/big-data/install-python-libraries-on-a-running-cluster-with-emr-notebooks/) sul blog Big Data. AWS 

**Example - 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()
```

**Example - Installazione della libreria Celery**  
Il comando seguente installa la libreria [Celery](https://pypi.org/project/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()
```

**Example - Installazione della libreria Arrow, specifica della versione e del repository**  
Il comando seguente installa la libreria [Arrow](https://pypi.org/project/arrow/) come libreria con ambito notebook, con una specifica dell'URL del repository e della versione della libreria.  

```
sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")
```

**Example - Disinstallazione di una libreria**  
Il comando seguente disinstalla la libreria Arrow rimuovendola come libreria con ambito notebook dalla sessione corrente.  

```
sc.uninstall_package("arrow")
```