Interpretar códigos de erro no Synapse Analytics
Há muitos fatores que podem fazer parte do motivo de falha de um aplicativo Spark no Azure Synapse Analytics atualmente. Por exemplo, a falha pode se dever a um erro do sistema ou até mesmo a um erro relacionado ao usuário. Anteriormente, todos os erros correspondentes a trabalhos com falha no Synapse Analytics eram expostos com um código de erro genérico exibindo LIVY_JOB_STATE_DEAD. Esse código de erro não fornecia mais informações sobre o motivo de falha do trabalho. Ele exige um esforço significativo para identificar a causa raiz, com pesquisas no driver, executor, evento Spark, logs do Livy, até encontrar uma resolução.
Apresentamos uma lista mais precisa de códigos de erro que substitui a mensagem genérica anterior. A nova mensagem descreve a causa da falha. Sempre que um trabalho falha no Azure Synapse Analytics, a funcionalidade de tratamento de erro analisa e verifica os logs no back-end para identificar a causa raiz. Em seguida, exibe uma mensagem para o usuário no painel de monitoramento junto com as etapas para resolver o problema.
Habilitar classificação de erro no Synapse
A funcionalidade de classificação de erro pode ser habilitada ou desabilitada definindo a seguinte configuração do Spark para true
ou false
no nível do trabalho ou do pool:
livy.rsc.synapse.error-classification.enabled
A seção a seguir lista alguns tipos de erros com suporte no momento. Estamos continuamente refinando e adicionando mais códigos de erro a esses, aprimorando o nosso modelo.
Categorias de código de erro
Cada código de erro é classificado em um dos quatro buckets a seguir:
- Usuário – Indicando um erro do usuário
- Sistema – Indicando um erro do sistema
- Ambíguo – Pode ser um erro do usuário ou do sistema
- Desconhecido – Nenhuma classificação ainda, provavelmente porque o tipo de erro não está incluído no modelo
Exemplos de códigos de erro para cada tipo de classificação
Spark_User_TypeError_TypeNotIterable
No Python, o erro TypeError: argument of type 'insert type' is not iterable
ocorre quando o operador de associação (in, not in) é usado para validar a associação de um valor em objetos não iteráveis, como lista, tupla, dicionário. Isso geralmente ocorre devido à pesquisa de valor em um objeto não iterável. Soluções possíveis:
- Verifique se o valor está presente no objeto iterável.
- Se você quiser verificar um valor para outro, use o operador lógico em vez do Operador de Associação.
- Se o operador de associação contiver o valor "Nenhum", ele não poderá iterar, e uma verificação nula ou um padrão atribuído deverá ser feito.
- Verifique se o tipo do valor usado pode realmente ser verificado e se a digitação está correta.
Spark_System_ABFS_OperationFailed
Falha em uma operação com o ADLS Gen2.
Este erro ocorre tipicamente por um problema de permissões.
Verifique se todos os recursos do ADLS Gen2 referenciados no trabalho do Spark têm a função RBAC "Colaborador de Dados de Blob de Armazenamento" nas contas de armazenamento das quais se espera que o trabalho leia e grave. Verifique os logs deste aplicativo Spark. Navegue até o Synapse Studio, selecione a guia Monitorar no painel esquerdo. Na seção Atividades, selecione Aplicativos Apache Spark e localize o seu trabalho do Spark na lista. Para obter o nome da conta de armazenamento do ADLS Gen2 que está enfrentando esse problema, inspecione os logs disponíveis na guia Logs na parte inferior desta página.
Spark_Ambiguous_ClassLoader_NoClassDefFound
Não foi possível encontrar uma classe exigida pelo código quando o script foi executado.
Confira as seguintes páginas para obter a documentação de gerenciamento de pacotes:
Para cenários do Notebook: Apache Spark gerencia pacotes para trabalhos interativos
Para cenários de lote do Spark (confira a seção 6): Apache Spark gerencia pacotes para trabalhos em lote
Verifique se todas as dependências de código estão incluídas nas execuções do JARs Synapse. Se você não incluir ou não puder incluir JARs de terceiros com o seu próprio código, verifique se todas as dependências estão incluídas nos pacotes de workspace para o pool do Spark no qual você está executando o código, ou se elas estão incluídas na listagem "Arquivos de referência" para o envio em lote do Spark. Confira a documentação acima para obter mais informações.
Spark_Unknown_Unknown_java.lang.Exception
Uma falha desconhecida, o modelo não foi capaz de classificar.
Os códigos de erro (incluindo e além da lista mostrada acima), juntamente com as instruções de solução de problemas sobre como resolver o problema, aparecerão no painel de erros do aplicativo Synapse Studio se essa funcionalidade estiver habilitada.
Observação
Se você tiver criado qualquer ferramenta em torno do trabalho de monitoramento do Synapse que verifica se há um trabalho com falha filtrando o código de erro LIVY_JOB_STATE_DEAD
, seu aplicativo não funcionará mais. Porque os códigos de erro retornados seriam diferentes, conforme mencionado acima. Modifique os scripts adequadamente para utilizar essa funcionalidade ou desabilitá-la, se ela não for necessária.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de