Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
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á.
Solucionar problemas de notebooks Studio para serviço gerenciado para Apache Flink
Esta seção contém informações sobre solução de problemas para notebooks Studio.
Interromper um aplicativo bloqueado
Para interromper um aplicativo que está preso em um estado transitório, chame a StopApplicationação com o Force
parâmetro definido como. true
Para obter mais informações, consulte Running Applications, no Guia do desenvolvedor do Managed Service for Apache Flink.
Implemente como um aplicativo com estado durável sem acesso à Internet VPC
A deploy-as-application função Managed Service for Apache Flink Studio não oferece suporte a VPC aplicativos 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:
Crie e exporte seu aplicativo Studio para o Amazon S3. Isso deve ser um arquivo zip.
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
(2groupID
, 3var
no total):kinesis.analytics.flink.run.options
python: source/note.py
arquivo jar: PythonApplicationDependencies lib/.jar
managed.deploy_as_app.options
Banco de dadosARN:
<glue database ARN (Amazon Resource Name)>
Talvez seja necessário conceder permissões às IAM funções Managed Service for Apache Flink Studio e Managed Service for Apache Flink para os serviços que seu aplicativo usa. Você pode usar a mesma IAM função para os dois aplicativos.
Deploy-as-app redução do tamanho e do tempo de construção
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:
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
. Executar o seguinte comando para remover um pacote:
%flink.pyflink !pip uninstall -y <package-to-remove>
Se você precisar recuperar um pacote removido por engano, execute o seguinte comando:
%flink.pyflink !pip install <package-to-install>
exemplo Exemplo: remova o scipy
pacote antes de implantar seu aplicativo deploy-as-app Python com o recurso.
Use
pipdeptree
para descobrir todos os consumidores doscipy
e verificar se você pode removerscipy
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]
Inspecione cuidadosamente o uso de
seaborn
,statsmodels
eplotnine
em seus aplicativos. Se os aplicativos não dependerem doscipy
,seaborn
,statemodels
ouplotnine
, você poderá remover todos esses pacotes ou somente aqueles que os aplicativos não precisarem.Remova o pacote executando:
!pip uninstall -y scipy plotnine seaborn statemodels
Cancelar trabalhos
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
Para reiniciar o interpretador Apache Flink em seu notebook Studio
Selecione Configuração no canto superior direito da tela.
Selecione Intérprete.
-
Selecione reiniciar e, em seguida, OK.