Como faço para acessar um cluster do Amazon EMR por meio de um aplicativo se o cluster estiver em uma sub-rede privada?

4 minuto de leitura
0

Quero usar um aplicativo, como o Apache Livy, para acessar e enviar trabalhos para um cluster do Amazon EMR que esteja em uma sub-rede privada.

Breve descrição

Crie um Application Load Balancer com o esquema voltado para a Internet. Defina o destino do Application Load Balancer como o endereço IP privado do nó principal. Isso permite que você:

  1. Conecte-se ao cluster do EMR que está em uma sub-rede privada.
  2. Envie trabalhos para o cliente usando APIs REST.

Resolução

Observação: o seguinte pode não funcionar se você iniciar o cluster com o Kerberos ou habilitar o SSL para Livy.

  1. Abra o console do Amazon Elastic Compute Cloud (Amazon EC2).
  2. No painel de navegação, em Balanceamento de carga, escolha Balanceadores de carga.
  3. Selecione Criar balanceador de carga.
  4. Na página Selecionar tipo de balanceador de carga, em Application Load Balancer, escolha Criar.
  5. Na página Etapa 1: configurar a página do balanceador de carga, faça o seguinte:
    Em Esquema, escolha Voltado para a Internet.
    Para Receptores, use as opções padrão (HTTP e porta 80)
    Para VPC, escolha a VPC na qual o cluster do EMR está.
    Para Zonas de disponibilidade, escolha duas sub-redes. Certifique-se de que uma delas seja a sub-rede na qual o cluster do EMR está (sub-rede privada).
  6. Escolha Próximo: definir configurações de segurança.
  7. Se você criou um receptor seguro na etapa anterior, preencha a página Definir configurações de segurança. Caso contrário, escolha Próximo: configurar grupos de segurança.
  8. Selecione o grupo ou grupos de segurança para o Application Load Balancer. Lembre-se de que trata-se de um Application Load Balancer voltado para a Internet. Recomenda-se usar um grupo de segurança que limite as solicitações recebidas de um endereço IP específico ou intervalo de endereços IP.
  9. Escolha Próximo: configurar o roteamento.
  10. Na página Etapa 4: configurar página de roteamento:
    Em Grupo de destino, selecione o grupo de destino de sua escolha.
    Em Nome, insira o nome do destino.
    Em Tipo de destino, escolha IP.
    Em Protocolo, escolha HTTP.
    Em Port, insira a porta da interface web do cliente. Por exemplo, para Livy, insira 8998. Para obter mais informações, consulte Exibir interfaces web hospedadas em clusters do Amazon EMR.
    Na seção Verificações de integridade, em Protocolo, escolha HTTP.
    Em Caminho, insira /sessions.
  11. Escolha Próximo: registrar destinos.
  12. Na página Etapa 5: registrar destinos, em IP, insira o endereço IP privado do nó mestre. Você pode encontrar o endereço IP privado do nó principal na guia Hardware da página de detalhes do cluster.
  13. Escolha Adicionar à lista para adicionar o endereço IP à lista A ser registrada.
  14. Escolha Próximo: revisar e escolha Criar.
  15. Quando o Estado mudar para ativo, escolha a guia Ouvintes.
  16. Na coluna Regras, escolha o link do grupo de dfestino.
  17. Na guia Destinos, confirme se os Destinos registrados e as Zonas de disponibilidade estão íntegros.
  18. Na guia Descrição, escolha o link ao lado do Balanceador de carga (o link que é o nome do balanceador de carga). Se a interface web do Livy aparecer, a configuração está funcionando. Isso significa que as solicitações podem alcançar o Livy no cluster EMR na sub-rede privada.

Agora você pode enviar trabalhos para o cliente. Por exemplo, o comando a seguir envia um trabalho do Apache Spark para o servidor Livy. Substitua livyALB-2103017743.us-east-1.elb.amazonaws.com pelo nome DNS do seu Application Load Balancer. Você pode encontrar o nome DNS na guia Descrição do Application Load Balancer.

curl -X POST --data '{"kind": "pyspark"}' -H "Content-Type: application/json" livyALB-2103017743.us-east-1.elb.amazonaws.com/sessions

Informações relacionadas

Como acessar as interfaces de usuário web do Spark

Apache Livy

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos