

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Installation et utilisation de noyaux et de bibliothèques dans EMR Studio
<a name="emr-managed-notebooks-installing-libraries-and-kernels"></a>

Chaque bloc-notes EMR est livré avec un ensemble de bibliothèques et de noyaux pré-installés. Vous pouvez installer des bibliothèques et des noyaux supplémentaires dans un cluster EMR si le cluster a accès au référentiel où se trouvent les noyaux et les bibliothèques. Par exemple, pour les clusters dans les sous-réseaux privés, vous devrez peut-être conﬁgurer la traduction d'adresses réseau (NAT) et fournir un chemin d'accès au référentiel PYPI public pour installer une bibliothèque. Pour plus d'informations sur la configuration de l'accès externe pour différentes configurations réseau, consultez la rubrique [Scénarios et exemples](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenarios.html) dans le *Guide de l'utilisateur d'Amazon VPC*.

**Note**  
Les notebooks EMR sont disponibles sous forme d'espaces de travail EMR Studio dans la console. Le bouton **Créer un espace** de travail de la console vous permet de créer de nouveaux blocs-notes. Pour accéder aux Workspaces ou en créer, les utilisateurs EMR Notebooks doivent disposer d'autorisations de rôle IAM supplémentaires. [Pour plus d'informations, consultez [Amazon EMR Notebooks are Amazon EMR Studio Workspaces dans la console et 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>

Les applications EMR Serverless sont fournies avec les bibliothèques préinstallées suivantes pour Python et : PySpark 
+ **Bibliothèques Python** : ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, scipy
+ **PySpark bibliothèques** —ggplot,matplotlib,numpy,pandas,plotly,bokeh,scikit-learn,scipy, scipy

## Installation des noyaux et des bibliothèques Python sur le nœud primaire d'un cluster
<a name="emr-managed-notebooks-cluster-kernel"></a>

Avec Amazon EMR en version 5.30.0 et ultérieure, à l'exception de la version 6.0.0, vous pouvez installer des noyaux et des bibliothèques Python supplémentaires sur le nœud primaire du cluster. Après l'installation, ces noyaux et bibliothèques sont disponibles pour tout utilisateur exécutant un bloc-notes EMR attaché au cluster. Les bibliothèques Python installées de cette façon ne sont disponibles que pour les processus s'exécutant sur le nœud primaire. Les bibliothèques ne sont pas installées sur les nœuds principaux ou de tâche et ne sont pas disponibles pour les exécuteurs s'exécutant sur ces nœuds.

**Note**  
Pour les versions 5.30.1, 5.31.0 et 6.1.0 d'Amazon EMR, vous devez prendre des mesures supplémentaires afin d'installer les noyaux et les bibliothèques sur le nœud primaire d'un cluster.   
Pour activer cette fonctionnalité, procédez comme suit :  
Assurez-vous que la politique d'autorisations attachée à la fonction du service pour les blocs-notes EMR autorise l'action suivante :  
`elasticmapreduce:ListSteps`  
Pour plus d'informations, consultez la rubrique [Fonction du service pour les bloc-notes EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-service-role.html).
Utilisez le AWS CLI pour exécuter une étape sur le cluster qui configure les Notebooks EMR, comme indiqué dans l'exemple suivant. Vous devez utiliser le nom d'étape `EMRNotebooksSetup`. Remplacez *us-east-1* par la région dans laquelle réside votre cluster. Pour plus d'informations sur l'ajout d'étapes, consultez la rubrique [Ajout d'étapes à un cluster à l'aide de 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"]
   ```

Vous pouvez installer des noyaux et des bibliothèques à l'aide de `pip` ou de `conda` dans le répertoire `/emr/notebook-env/bin` du nœud primaire. 

**Example – Installation de bibliothèques Python**  
À partir du noyau Python3, exécutez la commande magique `%pip` directement depuis une cellule du bloc-notes pour installer les bibliothèques Python.  

```
%pip install pmdarima
```
Vous devrez peut-être redémarrer le noyau pour utiliser les packages mis à jour. Vous pouvez également utiliser la commande magique de Spark [https://ipython.readthedocs.io/en/stable/interactive/magics.html#cellmagic-sh](https://ipython.readthedocs.io/en/stable/interactive/magics.html#cellmagic-sh) pour invoquer `pip`.  

```
%%sh
/emr/notebook-env/bin/pip install -U matplotlib
/emr/notebook-env/bin/pip install -U pmdarima
```
Lorsque vous utilisez un PySpark noyau, vous pouvez soit installer des bibliothèques sur le cluster à l'aide de `pip` commandes, soit utiliser des bibliothèques adaptées à un bloc-notes à partir d'un bloc-notes. PySpark   
Pour exécuter des commandes `pip` sur le cluster depuis le terminal, connectez-vous d'abord au nœud primaire via SSH, comme le montrent les commandes suivantes.  

```
sudo pip3 install -U matplotlib
sudo pip3 install -U pmdarima
```
Vous pouvez également utiliser des bibliothèques adaptées aux blocs-notes. Si vous utilisez des bibliothèques adaptées aux blocs-notes, l'installation de votre bibliothèque est limitée à l'étendue de votre session et s'effectue sur tous les exécuteurs Spark. Pour plus d'informations, consultez la rubrique relative à l'[utilisation de bibliothèques adaptées aux blocs-notes](#emr-managed-notebooks-custom-libraries-limitations).   
Si vous souhaitez empaqueter plusieurs bibliothèques Python dans un PySpark noyau, vous pouvez également créer un environnement virtuel Python isolé. Pour obtenir des exemples d'utilisation, consultez [Using Virtualenv](https://spark.apache.org/docs/latest/api/python/tutorial/python_packaging.html#using-virtualenv).   
Pour créer un environnement virtuel Python dans une session, utilisez la propriété Spark `spark.yarn.dist.archives` à partir de la commande magique `%%configure` dans la première cellule du bloc-notes, comme le montre l'exemple suivant.  

```
%%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"
   }
}
```
Vous pouvez également créer un environnement d'exécuteur 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"
   }
}
```
Vous pouvez également utiliser `conda` pour installer des bibliothèques Python. Vous n'avez pas besoin d'un accès sudo pour utiliser `conda`. Vous devez vous connecter au nœud primaire à l'aide de SSH, puis exécuter `conda` à partir du terminal. Pour de plus amples informations, veuillez consulter [Connectez-vous au nœud principal du cluster Amazon EMR à l'aide de SSH](emr-connect-master-node-ssh.md). 

**Example – Installation de noyaux**  
L'exemple suivant illustre l'installation du noyau Kotlin à l'aide d'une commande de terminal lorsque vous êtes connecté au nœud primaire d'un cluster :  

```
sudo /emr/notebook-env/bin/conda install kotlin-jupyter-kernel -c jetbrains
```
Ces instructions n'installent pas les dépendances du noyau. Si votre noyau comporte des dépendances tierces, vous devrez peut-être effectuer des étapes de configuration supplémentaires pour pouvoir utiliser le noyau avec votre bloc-notes.

## Considérations et limites relatives aux bibliothèques adaptées aux blocs-notes
<a name="emr-managed-notebooks-custom-libraries-limitations"></a>

Lorsque vous utilisez des bibliothèques adaptées aux blocs-notes, tenez compte des éléments suivants :
+ Les bibliothèques adaptées aux blocs-notes sont disponibles pour les clusters que vous créez avec Amazon EMR versions 5.26.0 et ultérieures.
+ Les bibliothèques de type Notebook sont destinées à être utilisées uniquement avec le noyau. PySpark
+ Tout utilisateur peut installer des bibliothèques supplémentaires à portée de bloc-notes à partir d'une cellule de bloc-notes. Ces bibliothèques ne sont disponibles que pour cet utilisateur de bloc-notes au cours d'une seule session de bloc-notes. Si d'autres utilisateurs ont besoin des mêmes bibliothèques ou si le même utilisateur a besoin des mêmes bibliothèques dans une session différente, la bibliothèque doit être réinstallée.
+ Vous pouvez désinstaller uniquement les bibliothèques qui ont été installées à l'aide de l'API `install_pypi_package`. Vous ne pouvez désinstaller aucune bibliothèque qui a été installée sur le cluster.
+ Si les mêmes bibliothèques avec des versions différentes sont installées sur le cluster et en tant que bibliothèques limitées au bloc-notes, la version de la bibliothèque limitée aux bloc-notes remplace la version de la bibliothèque du cluster.

## Travail avec des bibliothèques adaptées aux blocs-notes
<a name="emr-managed-notebooks-work-with-libraries"></a>

Pour installer des bibliothèques, votre cluster Amazon EMR doit avoir accès au référentiel PyPI dans lequel se trouvent les bibliothèques.

Les exemples suivants illustrent des commandes simples permettant de répertorier, d'installer et de désinstaller des bibliothèques depuis une cellule d'un bloc-notes à l'aide PySpark du noyau et APIs. Pour des exemples supplémentaires, consultez [l'article Installer des bibliothèques Python sur un cluster en cours d'exécution avec EMR](https://aws.amazon.com/blogs/big-data/install-python-libraries-on-a-running-cluster-with-emr-notebooks/) Notebooks sur AWS le Big Data Blog.

**Example – Liste des bibliothèques actuelles**  
La commande suivante répertorie les ensembles Python disponibles pour la session de bloc-notes Spark actuelle. Cette liste contient les bibliothèques installées sur le cluster et les bibliothèques limitées aux bloc-notes.  

```
sc.list_packages()
```

**Example – Installation de la bibliothèque Celery**  
La commande suivante installe la bibliothèque [Celery](https://pypi.org/project/celery/) en tant que bibliothèque limitée aux bloc-notes.  

```
sc.install_pypi_package("celery")
```
Après avoir installé la bibliothèque, la commande suivante confirme qu’elle est disponible sur le pilote et les programmes d'exécution Spark.  

```
import celery
sc.range(1,10000,1,100).map(lambda x: celery.__version__).collect()
```

**Example – Installation de la bibliothèque Arrow, spécification de la version et du référentiel**  
La commande suivante installe la bibliothèque [Arrow](https://pypi.org/project/arrow/) en tant que bibliothèque limitée aux bloc-notes, avec une spécification de la version de la bibliothèque et l'URL du référentiel.  

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

**Example – Désinstallation d'une bibliothèque**  
La commande suivante désinstalle la bibliothèque Arrow, en la supprimant en tant que bibliothèque limitées aux bloc-notes de la session en cours.  

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