Erros em clusters de streaming no Amazon EMR
Em geral, você pode encontrar a causa de um erro de streaming em um arquivo syslog
. Estabeleça um link para ela no painel Steps (Etapas).
Os seguintes erros são comuns em clusters de streaming.
Tópicos
Os dados estão sendo enviados ao mapeador no formato errado?
Para verificar se esse é o caso, procure uma mensagem de erro no arquivo syslog
de uma tentativa de tarefa com falha nos logs de tentativas de tarefas. Para ter mais informações, consulte Exibição dos arquivos de log do Amazon EMR.
Seu script está perdendo a validade?
O tempo limite padrão para um script de mapeador ou reducer é de 600 segundos. Se o script demorar mais do que isso, a tentativa de tarefa falhará. Você pode verificar se esse é o caso consultando o arquivo syslog
de uma tentativa de tarefa com falha nos logs de tentativas de tarefas. Para ter mais informações, consulte Exibição dos arquivos de log do Amazon EMR.
Você pode alterar o limite de tempo definindo um novo valor para a definição de configuração mapred.task.timeout
. Essa configuração especifica o número de milissegundos após os quais o Amazon EMR encerrará uma tarefa que não lei entradas, gravou saídas ou atualizou sua string de status. Você pode atualizar esse valor transmitindo um argumento de streaming adicional -jobconf
mapred.task.timeout=800000
.
Você está transmitindo argumentos de streaming inválidos?
O streaming do Hadoop oferece suporte apenas aos seguintes argumentos. Se você transmitir argumentos diferentes dos listados abaixo, o cluster falhará.
-blockAutoGenerateCacheFiles -cacheArchive -cacheFile -cmdenv -combiner -debug -input -inputformat -inputreader -jobconf -mapper -numReduceTasks -output -outputformat -partitioner -reducer -verbose
Além disso, o streaming do Hadoop só reconhece argumentos transmitidos usando a sintaxe Java; ou seja, precedidos por um único hífen. Se você transmitir argumentos precedidos de um hífen duplo, o cluster falhará.
Seu script foi encerrado com um erro?
Se a saída do seu script de mapeador ou reducer for gerada com um erro, você poderá localizar esse erro no arquivo stderr
dos logs de tentativas da tarefa com falha. Para ter mais informações, consulte Exibição dos arquivos de log do Amazon EMR.