VPCerros - Amazon EMR

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á.

VPCerros

Os seguintes erros são comuns na VPC configuração na AmazonEMR.

Configuração de sub-rede inválida

Na página Cluster Details (Detalhes do cluster), no campo Status, será exibida uma mensagem de erro semelhante ao seguinte:

The subnet configuration was invalid: Cannot find route to InternetGateway in main RouteTable rtb-id for vpc vpc-id.

Para resolver esse problema, você deve criar um Internet Gateway e anexá-lo ao seuVPC. Para obter mais informações, consulte Adicionar um gateway de internet ao seu VPC.

Como alternativa, verifique se você configurou seu VPC com a opção Ativar DNS resolução e Ativar suporte ao DNS nome do host ativadas. Para obter mais informações, consulte Usando DNS com seu VPC.

Conjunto de DHCP opções ausentes

Você verá uma falha de etapa no syslog (log do sistema) do cluster com uma mensagem de erro semelhante ao seguinte:

ERROR org.apache.hadoop.security.UserGroupInformation (main): PriviledgedActionException as:hadoop (auth:SIMPLE) cause:java.io.IOException: org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Application with id 'application_id' doesn't exist in RM.

ou

ERROR org.apache.hadoop.streaming.StreamJob (main): Error Launching job : org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Application with id 'application_id' doesn't exist in RM.

Para resolver esse problema, você deve configurar um VPC que inclua um Conjunto de DHCP Opções cujos parâmetros sejam definidos com os seguintes valores:

nota

Se você usar a região AWS GovCloud (Oeste dos EUA), defina domain-name como us-gov-west-1.compute.internal em vez do valor usado no exemplo a seguir.

  • domain-name = ec2.internal

    Use ec2.internal, se a região for Leste dos EUA (Norte da Virgínia). Para outras regiões, use region-name.compute.internal. Por exemplo, em us-west-2, use domain-name =. us-west-2.compute.internal

  • domain-name-servers = AmazonProvidedDNS

Para obter mais informações, consulte Conjuntos DHCP de opções.

Erros de permissão

Uma falha no log stderr para uma etapa indica que um recurso do Amazon S3 não tem as permissões apropriadas. Este é um erro 403 e a mensagem de erro é semelhante a algo como:

Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: REQUEST_ID

Se ActionOnFailure for definido comoTERMINATE_JOB_FLOW, isso resultará no encerramento do cluster com o estado,SHUTDOWN_COMPLETED_WITH_ERRORS.

Algumas maneiras de solucionar esse problema incluem:

  • Se você estiver usando uma política de bucket do Amazon S3 em umVPC, certifique-se de dar acesso a todos os buckets criando um VPC endpoint e selecionando Permitir tudo na opção Política ao criar o endpoint.

  • Certifique-se de que todas as políticas associadas aos recursos do S3 incluam aquela VPC na qual você executa o cluster.

  • Tente executar o seguinte comando a partir de seu cluster, para verificar se você pode acessar o bucket

    hadoop fs -copyToLocal s3://path-to-bucket /tmp/
  • Você pode obter mais informações de depuração específicas, ao configurar o parâmetro log4j.logger.org.apache.http.wire como DEBUG no arquivo /home/hadoop/conf/log4j.properties no cluster. Você pode verificar o arquivo de log stderr depois de tentar acessar o bucket a partir do cluster. O arquivo de log fornecerá informações mais detalhadas:

    Access denied for getting the prefix for bucket - us-west-2.elasticmapreduce with path samples/wordcount/input/ 15/03/25 23:46:20 DEBUG http.wire: >> "GET /?prefix=samples%2Fwordcount%2Finput%2F&delimiter=%2F&max-keys=1 HTTP/1.1[\r][\n]" 15/03/25 23:46:20 DEBUG http.wire: >> "Host: us-west-2.elasticmapreduce.s3.amazonaws.com[\r][\n]"

Erros que resultam em START_FAILED

Antes da AMI versão 3.7.0, para VPCs onde um nome de host é especificado, a Amazon EMR mapeia os nomes de host internos da sub-rede com endereços de domínio personalizados da seguinte forma:. ip-X.X.X.X.customdomain.com.tld Por exemplo, se o nome do host fosse ip-10.0.0.10 e tivesse a VPC opção de nome de domínio definida como customdomain.com, o nome de host resultante mapeado pela Amazon seria. EMR ip-10.0.1.0.customdomain.com Uma entrada é incluída em /etc/hosts para resolver o nome do host como 10.0.0.10. Esse comportamento foi alterado com a AMI versão 3.7.0 e agora a Amazon EMR respeita totalmente a DHCP configuração do. VPC Anteriormente, os clientes também podiam usar uma ação de bootstrap para especificar um mapeamento de nome de host.

Se quiser preservar esse comportamento, você deve fornecer a configuração DNS de resolução futura necessária para o domínio personalizado.

Cluster Terminated with errors e NameNode falha ao iniciar

Ao iniciar um EMR cluster em um VPC que usa um nome de DNS domínio personalizado, seu cluster pode falhar com a seguinte mensagem de erro no console:

Terminated with errors On the master instance(instance-id), bootstrap action 1 returned a non-zero return code

A falha é resultado da NameNode impossibilidade de inicialização. Isso resultará no seguinte erro encontrado nos NameNode registros, cujo Amazon S3 URI tem o formato: s3://mybucket/logs/cluster-id/daemons/master instance-id/hadoop-hadoop-namenode-master node hostname.log.gz

2015-07-23 20:17:06,266 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem (main): Encountered exception loading fsimage java.io.IOException: NameNode is not formatted. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:212) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1020) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:739) at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:537) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:596) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:765) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:749) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1441) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)

Isso ocorre devido a um possível problema em que uma EC2 instância pode ter vários conjuntos de nomes de domínio totalmente qualificados ao iniciar EMR clusters em umVPC, o que faz uso de um DNS servidor AWS fornecido e de um servidor personalizado fornecido pelo usuárioDNS. Se o DNS servidor fornecido pelo usuário não fornecer nenhum registro pointer (PTR) para nenhum registro A usado para designar nós em um EMR cluster, os clusters falharão na inicialização quando configurados dessa forma. A solução é adicionar 1 PTR registro para cada registro A criado quando uma EC2 instância é iniciada em qualquer uma das sub-redes do. VPC