Partilhar via


Resolver Problemas do YARN do Apache Hadoop com o Azure HDInsight

Saiba mais sobre os principais problemas e suas resoluções ao trabalhar com cargas úteis do Apache Hadoop YARN no Apache Ambari.

Como faço para criar uma nova fila YARN em um cluster?

Passos de resolução

Use as etapas a seguir no Ambari para criar uma nova fila YARN e, em seguida, equilibre a alocação de capacidade entre todas as filas.

Neste exemplo, duas filas existentes (padrão e thriftsvr) são alteradas de 50% de capacidade para 25% de capacidade, o que dá à nova fila (faísca) 50% de capacidade.

Queue Capacidade Capacidade máxima
default 25% 50%
THRFTSVR 25% 50%
spark 50% 50%
  1. Selecione o ícone Ambari Views e, em seguida, selecione o padrão de grade. Em seguida, selecione YARN Queue Manager.

    Apache Ambari dashboard YARN Queue Manager.

  2. Selecione a fila padrão .

    Apache Ambari YARN selecione a fila padrão.

  3. Para a fila padrão , altere a capacidade de 50% para 25%. Para a fila de brechós, altere a capacidade para 25%.

    Altere a capacidade para 25% para as filas padrão e thriftsvr.

  4. Para criar uma nova fila, selecione Adicionar fila.

    Painel Apache Ambari YARN Adicionar fila.

  5. Nomeie a nova fila.

    Apache Ambari YARN nome do painel Fila.

  6. Deixe os valores de capacidade em 50% e selecione o botão Ações .

    Apache Ambari YARN selecionar ação.

  7. Selecione Salvar e atualizar filas.

    Selecione Salvar e atualizar filas.

Essas alterações são visíveis imediatamente na interface do usuário do YARN Scheduler.

Leitura adicional

Como faço para baixar logs do YARN de um cluster?

Passos de resolução

  1. Conecte-se ao cluster HDInsight usando um cliente Secure Shell (SSH). Para obter mais informações, consulte Leitura adicional.

  2. Para listar todas as IDs de aplicativo dos aplicativos YARN que estão em execução no momento, execute o seguinte comando:

    yarn top
    

    Os IDs são listados na coluna APPLICATIONID . Você pode baixar logs da coluna APPLICATIONID .

    YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root
    NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted
    Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed
    Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved
    Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved
    Queue(s) Containers: 2 allocated, 0 pending, 0 reserved
    
                      APPLICATIONID USER             TYPE      QUEUE   #CONT  #RCONT  VCORES RVCORES     MEM    RMEM  VCORESECS    MEMSECS %PROGR       TIME NAME
     application_1490377567345_0007 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628407    2442611  10.00   18:20:20 Thrift JDBC/ODBC Server
     application_1490377567345_0006 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628430    2442645  10.00   18:20:20 Thrift JDBC/ODBC Server
    
  3. Para baixar logs de contêiner do YARN para todos os mestres de aplicativos, use o seguinte comando:

    yarn logs -applicationIdn logs -applicationId <application_id> -am ALL > amlogs.txt
    

    Este comando cria um arquivo de log chamado amlogs.txt.

  4. Para baixar logs de contêiner do YARN apenas para o mestre de aplicativo mais recente, use o seguinte comando:

    yarn logs -applicationIdn logs -applicationId <application_id> -am -1 > latestamlogs.txt
    

    Este comando cria um arquivo de log chamado latestamlogs.txt.

  5. Para baixar logs de contêiner do YARN para os dois primeiros mestres de aplicativos, use o seguinte comando:

    yarn logs -applicationIdn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
    

    Este comando cria um arquivo de log chamado first2amlogs.txt.

  6. Para baixar todos os logs de contêiner do YARN, use o seguinte comando:

    yarn logs -applicationIdn logs -applicationId <application_id> > logs.txt
    

    Este comando cria um arquivo de log chamado logs.txt.

  7. Para baixar o log de contêiner do YARN para um contêiner específico, use o seguinte comando:

    yarn logs -applicationIdn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
    

    Este comando cria um arquivo de log chamado containerlogs.txt.

Leitura adicional

Como verifico as informações de diagnóstico de aplicativos do Yarn?

O diagnóstico na interface do usuário do Yarn é um recurso que permite visualizar o status e os logs de seus aplicativos em execução no Yarn. O diagnóstico pode ajudá-lo a solucionar problemas e depurar seus aplicativos, bem como monitorar seu desempenho e uso de recursos.

Para visualizar o diagnóstico de um aplicativo específico, você pode clicar no ID do aplicativo na lista de aplicativos. Na página de detalhes do aplicativo, você também pode ver uma lista de todas as tentativas que foram feitas para executar o aplicativo. Você pode clicar em qualquer tentativa para ver mais detalhes, como ID da tentativa, ID do contêiner, ID do nó, hora de início, hora de término e diagnóstico

Captura de tela mostrando o Yarn Application Diagnostics.

Como soluciono problemas comuns do YARN?

A interface do usuário do Yarn não está carregando

Se a interface do usuário do YARN não estiver carregando ou estiver inacessível e retornar "HTTP Error 502.3 - Bad Gateway", isso indica que o serviço do Resource Manager não está íntegro. Para mitigar este problema, siga estes passos:

  1. Vá para Ambari UI>YARN>SUMMARY e verifique se apenas o Resource Manager ativo está no estado Iniciado. Caso contrário, tente atenuar reiniciando o Gerenciador de Recursos não íntegro ou interrompido.
  2. Se a etapa 1 não resolver o problema, SSH o nó principal ativo do Gerenciador de Recursos e verifique o status da coleta de lixo usando jstat -gcutil <Resource Manager pid> 1000 100. Se você vir o FGCT aumentar significativamente em apenas alguns segundos, isso indica que o Gerenciador de Recursos está ocupado no GC completo e não consegue processar as outras solicitações.
  3. Aceda à IU do Ambari>YARN>CONFIGURAÇÕES>Avançadas e aumente Resource Manager java heap size.
  4. Reinicie os serviços necessários na IU do Ambari.

Ambos os gestores de recursos estão bloqueados no modo de espera

  1. Verifique o log do Gerenciador de Recursos para ver se existe um erro semelhante.
Service RMActiveServices failed in state STARTED; cause: org.apache.hadoop.service.ServiceStateException: com.google.protobuf.InvalidProtocolBufferException: Could not obtain block: BP-452067264-10.0.0.16-1608006815288:blk_1074235266_494491 file=/yarn/node-labels/nodelabel.mirror
  1. Se o erro existir, verifique se alguns ficheiros estão em replicação ou se faltam blocos no HDFS. Pode executar hdfs fsck hdfs://mycluster/

  2. Execute hdfs fsck hdfs://mycluster/ -delete com muita força, limpe o HDFS e elimine o problema do RM em espera. Como alternativa, execute PatchYarnNodeLabel em um dos nós principais para corrigir o cluster.

Próximos passos

Se não viu o problema ou não conseguiu resolvê-lo, visite um dos seguintes canais para obter mais suporte:

  • Obtenha respostas de especialistas do Azure através do Suporte da Comunidade do Azure.

  • Conecte-se com o @AzureSupport - a conta oficial do Microsoft Azure para melhorar a experiência do cliente. Ligar a comunidade do Azure aos recursos certos: respostas, suporte e especialistas.

  • Se precisar de mais ajuda, você pode enviar uma solicitação de suporte do portal do Azure. Selecione Suporte na barra de menus ou abra o hub Ajuda + suporte . Para obter informações mais detalhadas, consulte Como criar uma solicitação de suporte do Azure. O acesso ao suporte para Gestão de Subscrições e faturação está incluído na sua subscrição do Microsoft Azure e o Suporte Técnico é disponibilizado através de um dos Planos de Suporte do Azure.