Faça o YARN limpar o appcache antes de tentar novamente

9

A situação é a seguinte:

  1. Um aplicativo YARN é iniciado. É agendado.
  2. Ele escreve muito para o diretório appcache.
  3. O aplicativo falha.
  4. YARN reinicia. Ele está pendente, porque não há espaço suficiente em disco para programá-lo. Os discos são preenchidos pelo appcache da execução com falha.

Se eu intervir manualmente e matar o aplicativo, o espaço em disco será limpo. Agora posso reiniciar manualmente o aplicativo e tudo bem.

Gostaria de poder informar a nova tentativa automatizada para limpar o disco. Como alternativa, suponho que poderia contar o disco usado como parte da nova alocação, já que ele pertence ao aplicativo de qualquer maneira.

Eu ficarei feliz em aceitar qualquer solução que você possa oferecer. Eu não sei muito sobre o YARN. É um aplicativo do Apache Spark iniciado com spark-submit in yarn-client mode. Os arquivos que preenchem o disco são arquivos shuffle spill.

    
por Daniel Darabos 18.08.2015 в 23:18
fonte

1 resposta

2

Então, eis o que acontece:

  1. Ao enviar o aplicativo de fios ele cria uma pasta de recursos locais privados (appcache diretório).
  2. Dentro deste diretório, o gerenciador de blocos de ignição cria o diretório para armazenar dados do bloco. Como mencionado:
  

diretórios locais e não serão excluídos na saída da JVM ao usar o serviço shuffle externo.

  1. Este diretório pode ser limpo via:

    • Gancho de desligamento . Isso é o que acontece quando você mata o aplicativo.
    • Serviço de Exclusão de Fios. Deve ser feito automaticamente no final da aplicação. Certifique-se de que yarn.nodemanager.delete.debug-delay-sec = 0. Caso contrário, existe algum erro de fio não resolvido
por prudenko 21.03.2017 / 22:26
fonte