

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solução de problemas do notebook do Studio no Managed Service for Apache Flink
<a name="how-zeppelin-troubleshooting"></a>

Esta seção contém informações sobre solução de problemas para notebooks Studio.

## Interrompa um aplicativo travado
<a name="how-zeppelin-troubleshooting-stopping"></a>

Para interromper um aplicativo que está preso em um estado transitório, chame a [StopApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StopApplication.html)ação com o `Force` parâmetro definido como. `true` Para obter mais informações, consulte [Running Applications](https://docs.aws.amazon.com/managed-flink/latest/java/how-running-apps.html), no [Guia do desenvolvedor do Managed Service for Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/).

## Implante como um aplicativo com estado durável em uma VPC sem acesso à Internet
<a name="how-zeppelin-troubleshooting-deploying-no-internet"></a>

A deploy-as-application função Managed Service for Apache Flink Studio não oferece suporte a aplicativos VPC sem acesso à Internet. Recomendamos que você crie seu aplicativo no Studio e, em seguida, use o Managed Service for Apache Flink para criar manualmente um aplicativo Flink e selecionar o arquivo zip que você criou em seu Notebook.

As etapas a seguir descrevem essa abordagem: 

1. Crie e exporte seu aplicativo Studio para o Amazon S3. Isso deve ser um arquivo zip. 

1. Crie um aplicativo Managed Service for Apache Flink manualmente com um caminho de código referenciando a localização do arquivo zip no Amazon S3. Além disso, você precisará configurar o aplicativo com as seguintes variáveis `env` (2 `groupID`, 3 `var` no total): 

1. kinesis.analytics.flink.run.options

   1. python: source/note.py

   1. arquivo jar: PythonApplicationDependencies lib/.jar

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

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

1. Talvez seja necessário conceder permissões aos perfis do IAM do Managed Service for Apache Flink Studio e Managed Service for Apache Flink para os serviços que seu aplicativo usa. Você pode usar o mesmo perfil do IAM para os dois aplicativos.

## Deploy-as-app redução do tamanho e do tempo de construção
<a name="how-zeppelin-troubleshooting-deploying-as-app-reduce-build-time"></a>

Os aplicativos Studio deploy-as-app for Python empacotam tudo o que está disponível no ambiente Python porque não podemos determinar quais bibliotecas você precisa. Isso pode resultar em um tamanho maior do que o necessário. deploy-as-app O procedimento a seguir demonstra como reduzir o tamanho do aplicativo deploy-as-app Python desinstalando dependências.

Se você estiver criando um aplicativo Python com deploy-as-app recursos do Studio, considere remover pacotes Python pré-instalados do sistema, caso seus aplicativos não dependam deles. Isso não só ajudará a reduzir o tamanho final do artefato para evitar a violação do limite de serviço para o tamanho do aplicativo, mas também melhorará o tempo de criação dos aplicativos com o deploy-as-app recurso.

Execute o comando a seguir para listar todos os pacotes Python instalados com seus respectivos tamanhos instalados e remover seletivamente os pacotes com tamanho 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**  
Para funcionar, o Flink Python exige o `apache-beam`. Você nunca deve remover esse pacote e suas dependências.

A seguir está a lista de pacotes Python pré-instalados no Studio V2 que podem ser considerados para remoção:

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

**Para remover um pacote Python do caderno do Zeppelin:**

1. Verifique se o aplicativo depende do pacote, ou de qualquer um dos pacotes que o consome, antes de removê-lo. Identifique os dependentes de um pacote usando [pipdeptree](https://pypi.org/project/pipdeptree/).

1. Executar o seguinte comando para remover um pacote:

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

1. Se você precisar recuperar um pacote removido por engano, execute o seguinte comando:

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

**Example Exemplo: remova o `scipy` pacote antes de implantar seu aplicativo deploy-as-app Python com o recurso.**  

1. Use `pipdeptree` para descobrir todos os consumidores do `scipy` e verificar se você pode remover `scipy` com segurança.
   + Instale a ferramenta por meio do caderno:

     ```
     %flink.pyflink             
     !pip install pipdeptree
     ```
   + Obtenha a árvore de dependências revertida do `scipy` executando:

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

     Você verá um resultado semelhante ao seguinte (reduzido para concisão):

     ```
     ...
     ------------------------------------------------------------------------ 
     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. Inspecione cuidadosamente o uso de `seaborn`, `statsmodels` e `plotnine` em seus aplicativos. Se os aplicativos não dependerem do `scipy`, `seaborn`, `statemodels` ou `plotnine`, você poderá remover todos esses pacotes ou somente aqueles que os aplicativos não precisarem.

1. Remova o pacote executando:

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

## Cancelar tarefas
<a name="how-notbook-canceling-jobs"></a>

Esta seção mostra como cancelar trabalhos do Apache Flink que você não pode acessar no Apache Zeppelin. Se você quiser cancelar esse trabalho, acesse o painel do Apache Flink, copie o ID do trabalho e use-o em um dos exemplos a seguir.

Para cancelar um único trabalho:

```
%flink.pyflink
import requests

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

Para cancelar todos os trabalhos em execução:

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

Para cancelar todos os trabalhos:

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

## Reinicie o interpretador Apache Flink
<a name="how-notbook-restarting-interpreter"></a>

Para reiniciar o interpretador Apache Flink em seu notebook Studio

1. Selecione **Configuração ** no canto superior direito da tela.

1. Selecione **Intérprete**.

1. Selecione **reiniciar** e, em seguida, **OK**.