

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Solución de problemas de cuadernos de Studio en Managed Service para Apache Flink
<a name="how-zeppelin-troubleshooting"></a>

Esta sección contiene información sobre la solución de problemas de los cuadernos de Studio.

## Detención de una aplicación atascada
<a name="how-zeppelin-troubleshooting-stopping"></a>

Para detener una aplicación que está atascada en un estado transitorio, llame a la [StopApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StopApplication.html)acción con el `Force` parámetro establecido en. `true` Para obtener más información, consulte [Running Applicationsn](https://docs.aws.amazon.com/managed-flink/latest/java/how-running-apps.html) en la [Guía para desarrolladores de Managed Service para Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/).

## Implementación como una aplicación con un estado duradero en una VPC sin acceso a Internet
<a name="how-zeppelin-troubleshooting-deploying-no-internet"></a>

La función de implementación como aplicación de Managed Service para Apache Flink Studio no admite aplicaciones de VPC sin acceso a Internet. Se recomienda que cree la aplicación en Studio y, a continuación, utilice Managed Service para Apache Flink para crear manualmente una aplicación de Flink y seleccionar el archivo zip que creó en su cuaderno.

Los pasos siguientes describen este abordaje: 

1. Compile y exporte su aplicación de Studio a Amazon S3. Debe ser un archivo zip. 

1. Cree una aplicación de Managed Service para Apache Flink manualmente con una ruta de código que haga referencia a la ubicación del archivo zip en Amazon S3. Además, necesitará configurar la aplicación con las siguientes variables `env` (2 `groupID`, 3 `var` en total): 

1. kinesis.analytics.flink.run.options

   1. python: .py source/note

   1. Archivo jar: .jar lib/PythonApplicationDependencies

1. managed.deploy\_as\_app.options

   1. DatabasEearn: {{<glue database ARN (Amazon Resource Name)>}}

1. Es posible que necesite conceder permisos a las funciones de IAM de Managed Service para Apache Flink Studio y de Managed Service para Apache Flink para los servicios que su aplicación utilice. Se puede usar el mismo rol de IAM para ambas aplicaciones.

## Deploy-as-app reducción del tamaño y del tiempo de construcción
<a name="how-zeppelin-troubleshooting-deploying-as-app-reduce-build-time"></a>

Las aplicaciones de implementación como aplicación para Python de Studio empaquetan todo lo que hay disponible en el entorno Python porque no podemos determinar qué bibliotecas necesita. Esto puede provocar un tamaño de implementación como aplicación más grande del necesario. El siguiente procedimiento demuestra cómo reducir el tamaño de la aplicación de Python de implementación como aplicación a través de la desinstalación de las dependencias.

Si está creando una aplicación de Python con la función de implementación como aplicación de Studio, podría eliminar los paquetes de Python preinstalados del sistema si sus aplicaciones no dependen de ellos. Esto no solo ayudará a reducir el tamaño final del artefacto para evitar superar el límite de servicio para el tamaño de las aplicaciones, sino que también mejorará el tiempo de compilación de las aplicaciones con la característica de implementación como aplicación.

Se puede ejecutar el siguiente comando para enumerar todos los paquetes de Python instalados con sus respectivos tamaños de instalación y eliminar selectivamente los que tienen un tamaño significativo.

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

**nota**  
`apache-beam` es necesario para que Flink Python funcione. Nunca debe eliminar este paquete ni sus dependencias.

A continuación se encuentra la lista de paquetes de Python preinstalados en Studio V2 que se pueden eliminar:

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

**Para eliminar un paquete de Python del cuaderno de Zeppelin:**

1. Compruebe si su aplicación depende del paquete, o de alguno de los paquetes que lo utilice, antes de eliminarla. Se puede identificar los dependientes de un paquete mediante [pipdeptree](https://pypi.org/project/pipdeptree/).

1. Ejecución del siguiente comando para eliminar un paquete:

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

1. Si necesita recuperar un paquete que se eliminó por error, ejecute el siguiente comando:

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

**Example Ejemplo: Elimine el paquete `scipy` antes de implementar su aplicación de Python con la característica de aplicación como implementación.**  

1. Use `pipdeptree` para descubrir todos los consumidores de `scipy` y comprobar si puede eliminar `scipy` de forma segura.
   + Instale la herramienta a través del cuaderno:

     ```
     %flink.pyflink             
     !pip install pipdeptree
     ```
   + Obtenga un árbol de dependencias invertido de `scipy` al ejecutar:

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

     Debería ver una salida similar a la siguiente (está condensada para mayor rapidez):

     ```
     ...
     ------------------------------------------------------------------------ 
     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. Inspeccione cuidadosamente el uso de `seaborn`, `statsmodels` y `plotnine` en sus aplicaciones. Si sus aplicaciones no dependen de ninguno de los paquetes `scipy`, `seaborn`, `statemodels` o `plotnine`, puede eliminarlos todos o solo los que sus aplicaciones no necesiten.

1. Elimine el paquete al ejecutar:

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

## Cancelación de trabajos
<a name="how-notbook-canceling-jobs"></a>

En esta sección, se muestra cómo cancelar los trabajos de Apache Flink a los que no puede acceder desde Apache Zeppelin. Si desea cancelar un trabajo de este tipo, vaya al panel de control de Apache Flink, copie el identificador del trabajo y utilícelo en uno de los siguientes ejemplos.

Cómo cancelar un solo trabajo:

```
%flink.pyflink
import requests

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

Cómo cancelar todos los trabajos en ejecución:

```
%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))
```

Cómo cancelar todos los trabajos:

```
%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)
```

## Reinicio del intérprete Apache Flink
<a name="how-notbook-restarting-interpreter"></a>

Cómo reiniciar el intérprete Apache Flink en su cuaderno de Studio

1. Elija **Configuración** cerca de la esquina superior derecha de la pantalla.

1. Elija **Intérprete**.

1. Seleccione **reiniciar** y, a continuación, **Aceptar**.