Etapa aprimorada de depuração
Se houver falha em uma etapa do Amazon EMR e você enviou seu trabalho usando a operação de etapa de API com uma AMI de versão 5.x ou posterior, o Amazon EMR poderá identificar e retornar a causa raiz da falha na etapa em alguns casos, juntamente com o nome do arquivo de log relevante e uma parte do rastreamento da pilha de aplicações pela API. Por exemplo, as seguintes falhas podem ser identificadas:
-
Um erro do Hadoop comum, como o diretório de saída já existe, o diretório de entrada não existe ou um aplicativo ficou sem memória.
-
Erros de Java, como um aplicativo que foi compilado com uma versão incompatível do Java ou executado com uma classe principal não encontrada.
-
Um problema ao acessar objetos armazenados no Amazon S3.
Essas informações estão disponíveis usando-se as operações de API DescribeStep e ListSteps. O campo FailureDetails do StepSummary retornado por essas operações. Para acessar as informações de FailureDetails, use a AWS CLI, o console ou o AWS SDK.
Reformulamos o console do Amazon EMR para torná-lo mais fácil de usar. Consulte O que há de novo no console? para conhecer as diferenças entre as experiências do console antigo e novo.
- New console
-
O novo console do Amazon EMR não oferece depuração por etapas. No entanto, é possível visualizar os detalhes do encerramento do cluster realizando as etapas a seguir.
Visualizar os detalhes usando o novo console
-
Faça login no AWS Management Console e abra o console do Amazon EMR em https://console.aws.amazon.com/emr.
-
Em EMR no EC2 no painel de navegação esquerdo, escolha Clusters e, em seguida, selecione o cluster que você deseja visualizar.
-
Observe o valor do Status na seção Resumo da página de detalhes do cluster. Se o status for Terminado com erros, passe o mouse sobre o texto para visualizar os detalhes da falha do cluster.
- Old console
-
Visualizar os detalhes da falha usando o console antigo
Navegue até o novo console do Amazon EMR e selecione Alternar para o console antigo na navegação lateral. Para obter mais informações sobre o que esperar ao alternar para o console antigo, consulte Usar o console antigo.
-
Escolha Cluster List (Lista de clusters) e selecione um cluster.
-
Selecione o ícone de seta ao lado de cada etapa para exibir mais detalhes. Se houve falha na etapa e o Amazon EMR puder identificar a causa raiz, você verá os detalhes da falha.
- CLI
-
Visualizar os detalhes da falha usando a AWS CLI
-
Para obter detalhes da falha de uma etapa usando a AWS CLI, use o comando describe-step
.
aws emr describe-step --cluster-id j-1K48XXXXXHCB --step-id s-3QM0XXXXXM1W
A saída será semelhante à seguinte:
{
"Step": {
"Status": {
"FailureDetails": {
"LogFile": "s3://myBucket/logs/j-1K48XXXXXHCB/steps/s-3QM0XXXXXM1W/stderr.gz",
"Message": "org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory s3://myBucket/logs/beta already exists",
"Reason": "Output directory already exists."
},
"Timeline": {
"EndDateTime": 1469034209.143,
"CreationDateTime": 1469033847.105,
"StartDateTime": 1469034202.881
},
"State": "FAILED",
"StateChangeReason": {}
},
"Config": {
"Args": [
"wordcount",
"s3://myBucket/input/input.txt",
"s3://myBucket/logs/beta"
],
"Jar": "s3://myBucket/jars/hadoop-mapreduce-examples-2.7.2-amzn-1.jar",
"Properties": {}
},
"Id": "s-3QM0XXXXXM1W",
"ActionOnFailure": "CONTINUE",
"Name": "ExampleJob"
}
}