

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.

# Résoudre les problèmes liés aux blocs-notes Studio pour Managed Service pour Apache Flink
<a name="how-zeppelin-troubleshooting"></a>

Cette section contient des informations de dépannage pour les blocs-notes Studio.

## Arrêter une application bloquée
<a name="how-zeppelin-troubleshooting-stopping"></a>

Pour arrêter une application bloquée dans un état transitoire, appelez l'[StopApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StopApplication.html)action avec le `Force` paramètre défini sur. `true` Pour plus d’informations, consultez [Application en cours d’exécution](https://docs.aws.amazon.com/managed-flink/latest/java/how-running-apps.html) dans le [Guide du développeur du service géré pour Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/).

## Déployez en tant qu'application à état durable dans un VPC sans accès à Internet
<a name="how-zeppelin-troubleshooting-deploying-no-internet"></a>

La deploy-as-application fonction Managed Service for Apache Flink Studio ne prend pas en charge les applications VPC sans accès à Internet. Nous vous recommandons de créer votre application dans Studio, puis d’utiliser le service géré pour Apache Flink pour créer manuellement une application Flink et sélectionner le fichier zip que vous avez créé dans votre bloc-notes.

La procédure suivante montre comment procéder : 

1. Créez et exportez votre application Studio vers Amazon S3. Il doit s’agir d’un fichier zip. 

1. Créez manuellement une application de service géré pour Apache Flink avec un chemin de code faisant référence à l’emplacement du fichier zip dans Amazon S3. En outre, vous devrez configurer l’application avec les variables `env` suivantes (2 `groupID`, 3 `var` au total) : 

1. kinesis.analytics.flink.run.options

   1. python : source/note.py

   1. fichier jar : PythonApplicationDependencies lib/ .jar

1. managed.deploy\$1as\$1app.options

   1. DatabasEarn : *<glue database ARN (Amazon Resource Name)>*

1. Vous devrez peut-être accorder des autorisations aux rôles IAM du service géré pour Apache Flink Studio et du service géré pour Apache Flink pour les services utilisés par votre application. Vous pouvez utiliser le même rôle IAM pour les deux applications.

## Deploy-as-app réduction de la taille et du temps de fabrication
<a name="how-zeppelin-troubleshooting-deploying-as-app-reduce-build-time"></a>

Les applications Studio deploy-as-app for Python regroupent tout ce qui est disponible dans l'environnement Python, car nous ne pouvons pas déterminer les bibliothèques dont vous avez besoin. Cela peut entraîner une taille plus grande que nécessaire deploy-as-app. La procédure suivante montre comment réduire la taille de l'application deploy-as-app Python en désinstallant les dépendances.

Si vous créez une application Python avec des deploy-as-app fonctionnalités de Studio, vous pouvez envisager de supprimer les packages Python préinstallés du système si vos applications n'en dépendent pas. Cela permettra non seulement de réduire la taille finale de l'artefact afin d'éviter de dépasser la limite de service pour la taille de l'application, mais également d'améliorer le temps de création des applications dotées de cette fonctionnalité. deploy-as-app

Vous pouvez exécuter la commande suivante pour répertorier tous les packages Python installés avec leur taille d’installation respective et supprimer de manière sélective les packages volumineux.

```
%flink.pyflink

!pip list --format freeze | awk -F = {'print $1'} | xargs pip show | grep -E 'Location:|Name:' | cut -d ' ' -f 2 | paste -d ' ' - - | awk '{gsub("-","_",$1); print $2 "/" tolower($1)}' | xargs du -sh 2> /dev/null | sort -hr
```

**Note**  
`apache-beam` est requis pour que Flink Python fonctionne. Vous ne devez jamais supprimer ce package et ses dépendances.

Voici la liste des packages Python préinstallés dans Studio V2 dont la suppression peut être envisagée :

```
scipy
statsmodels
plotnine
seaborn
llvmlite
bokeh
pandas
matplotlib
botocore
boto3
numba
```

**Pour supprimer un package Python du bloc-notes Zeppelin :**

1. Vérifiez si votre application dépend du package, ou de l’un de ses packages consommateurs, avant de le supprimer. Vous pouvez identifier les dépendances d’un package à l’aide de [pipdeptree](https://pypi.org/project/pipdeptree/).

1. Exécution de la commande suivante pour supprimer un package :

   ```
   %flink.pyflink
   !pip uninstall -y <package-to-remove>
   ```

1. Si vous devez récupérer un package que vous avez supprimé par erreur, exécutez la commande suivante :

   ```
   %flink.pyflink
   !pip install <package-to-install>
   ```

**Example Exemple : supprimez le `scipy` package avant de déployer votre application Python avec deploy-as-app une fonctionnalité.**  

1. Utilisez `pipdeptree` pour découvrir tous les consommateurs `scipy` et vérifier si vous pouvez supprimer `scipy` en toute sécurité.
   + Installez l’outil via un bloc-notes :

     ```
     %flink.pyflink             
     !pip install pipdeptree
     ```
   + Obtenez l’arbre de dépendance inversé de `scipy` en exécutant :

     ```
     %flink.pyflink
     !pip -r -p scipy
     ```

     Vous devriez voir des résultats similaires à ce qui suit (condensés par souci de brièveté) :

     ```
     ...
     ------------------------------------------------------------------------ 
     scipy==1.8.0 
     ├── plotnine==0.5.1 [requires: scipy>=1.0.0] 
     ├── seaborn==0.9.0 [requires: scipy>=0.14.0] 
     └── statsmodels==0.12.2 [requires: scipy>=1.1] 
         └── plotnine==0.5.1 [requires: statsmodels>=0.8.0]
     ```

1. Inspectez soigneusement l’utilisation de `seaborn`, `statsmodels` et `plotnine` dans vos applications. Si vos applications ne dépendent d’aucun des packages `scipy`, `seaborn`, `statemodels` ou `plotnine`, vous pouvez tous les supprimer ou uniquement ceux dont vos applications n’ont pas besoin.

1. Supprimez le package en exécutant :

   ```
   !pip uninstall -y scipy plotnine seaborn statemodels
   ```

## Annulation de tâches
<a name="how-notbook-canceling-jobs"></a>

Cette section explique comment annuler des tâches Apache Flink auxquelles vous ne pouvez pas accéder depuis Apache Zeppelin. Si vous souhaitez annuler une telle tâche, rendez-vous sur le tableau de bord Apache Flink, copiez l’ID de la tâche, puis utilisez-le dans l’un des exemples suivants.

Pour annuler une seule tâche :

```
%flink.pyflink
import requests

requests.patch("https://zeppelin-flink:8082/jobs/[job_id]", verify=False)
```

Pour annuler toutes les tâches en cours :

```
%flink.pyflink
import requests

r = requests.get("https://zeppelin-flink:8082/jobs", verify=False)
jobs = r.json()['jobs']

for job in jobs:
    if (job["status"] == "RUNNING"):
        print(requests.patch("https://zeppelin-flink:8082/jobs/{}".format(job["id"]), verify=False))
```

Pour annuler toutes les tâches :

```
%flink.pyflink
import requests

r = requests.get("https://zeppelin-flink:8082/jobs", verify=False)
jobs = r.json()['jobs']

for job in jobs:
    requests.patch("https://zeppelin-flink:8082/jobs/{}".format(job["id"]), verify=False)
```

## Redémarrez l'interpréteur Apache Flink
<a name="how-notbook-restarting-interpreter"></a>

Pour redémarrer l’interprète Apache Flink dans votre bloc-notes Studio

1. Choisissez **Configuration** dans le coin supérieur droit de l’écran.

1. Choisissez **Interprète**.

1. Choisissez **Redémarrer**, puis **OK**.