Como se conectar ao nó primário do cluster do Amazon EMR usando SSH - Amazon EMR

Como se conectar ao nó primário do cluster do Amazon EMR usando SSH

O Secure Shell (SSH) é um protocolo de rede que você pode usar para criar uma conexão segura com um computador remoto. Depois de estabelecer uma conexão, o terminal no computador local se comporta como se estivesse em execução no computador remoto. Os comandos que você emitir localmente serão executados no computador remoto, e a saída do comando do computador remoto será exibida na janela do terminal.

Ao usar o SSH com a AWS, você está se conectando a uma instância do EC2, que é um servidor virtual em execução na nuvem. Ao trabalhar com o Amazon EMR, o uso mais comum do SSH é para conexão com a instância do EC2 que está atuando como o nó primário do cluster.

O uso do SSH para conectar-se ao nó primário permite monitorar o cluster e interagir com ele. Você pode emitir comandos do Linux no nó primário, executar aplicações como o Hive e o Pig interativamente, pesquisar diretórios, ler arquivos de log e assim por diante. Também pode criar um túnel na sua conexão SSH para visualizar as interfaces Web hospedadas no nó primário. Para ter mais informações, consulte Visualizar interfaces Web hospedadas em clusters do Amazon EMR.

Para se conectar ao nó primário usando o SSH, você precisa do nome DNS público do nó primário. Além disso, o grupo de segurança associado ao nó primário deve ter uma regra de entrada que permite o tráfego SSH (porta TCP 22) de uma fonte que inclui o cliente onde a conexão SSH se origina. Talvez seja necessário adicionar uma regra para permitir uma conexão SSH do seu cliente. Para obter mais informações sobre como modificar regras de grupos de segurança, consulte Controle do tráfego de rede com grupos de segurança para o cluster do Amazon EMR e Adding rules to a security group no Guia do usuário do Amazon EC2.

Recuperar o nome DNS público do nó primário

Você pode recuperar o nome DNS público primário usando o console do Amazon EMR e a AWS CLI.

Console
Recuperar o nome DNS público do nó primário usando o novo console
  1. Faça login no AWS Management Console e abra o console do Amazon EMR em https://console.aws.amazon.com/emr.

  2. Em EMR no EC2 no painel de navegação esquerdo, escolha Clusters e, em seguida, selecione o cluster em que deseja recuperar o nome DNS público.

  3. Observe o valor do DNS público do nó primário na seção Resumo da página de detalhes do cluster.

CLI
Recuperar o nome DNS público do nó primário usando a AWS CLI
  1. Para recuperar o identificador do cluster, digite o seguinte comando.

    aws emr list-clusters

    A saída lista seus clusters, incluindo os IDs dos clusters. Observe o ID do cluster ao qual você está se conectando.

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "My cluster"
  2. Para listar as instâncias de cluster, incluindo o nome DNS público do cluster, digite um dos comandos a seguir. Substitua j-2AL4XXXXXX5T9 pelo ID do cluster retornado pelo comando anterior.

    aws emr list-instances --cluster-id j-2AL4XXXXXX5T9

    Ou:

    aws emr describe-cluster --cluster-id j-2AL4XXXXXX5T9

    A saída lista as instâncias de cluster, incluindo nomes DNS e endereços IP. Observe o valor para PublicDnsName.

    "Status": { "Timeline": { "ReadyDateTime": 1408040779.263, "CreationDateTime": 1408040515.535 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-e89b45e7", "PublicDnsName": "ec2-###-##-##-###.us-west-2.compute.amazonaws.com" "PrivateDnsName": "ip-###-##-##-###.us-west-2.compute.internal", "PublicIpAddress": "##.###.###.##", "Id": "ci-12XXXXXXXXFMH", "PrivateIpAddress": "###.##.#.###"

Para obter mais informações, consulte os comandos do Amazon EMR na AWS CLI.

Conectar-se ao nó primário usando SSH e uma chave privada do Amazon EC2 no Linux, Unix e Mac OS X

Para criar uma conexão SSH autenticada com um arquivo de chave privada, você precisa especificar a chave privada do par de chaves do Amazon EC2 ao iniciar um cluster. Para obter mais informações sobre como acessar seu par de chaves, consulte Pares de chaves do Amazon EC2 no Guia do usuário do Amazon EC2.

Seu computador Linux muito provavelmente inclui um cliente SSH por padrão. Por exemplo, a OpenSSH está instalada na maioria dos sistemas operacionais Unix, Linux e MacOS X. É possível verificar se existe um cliente SSH digitando ssh na linha de comando. Se o computador não reconhecer o comando, instale um cliente SSH para se conectar ao nó primário. O projeto OpenSSH fornece uma implementação grátis do pacote completo de ferramentas SSH. Para obter mais informações, consulte o site do OpenSSH.

As instruções a seguir demonstram como abrir uma conexão SSH com o nó primário do Amazon EMR no Linux, Unix e Mac OS X.

Para configurar as permissões do arquivo de chave privada do par de chaves

Antes de usar sua chave privada do par de chaves do Amazon EC2 para criar uma conexão SSH, você deve definir permissões no arquivo .pem para que apenas o proprietário da chave tenha permissão para acessar o arquivo. Isso é necessário para criar uma conexão SSH usando o terminal ou a AWS CLI.

  1. Verifique se você permitiu tráfego SSH de entrada. Para obter instruções, consulte Antes de se conectar ao Amazon EMR: autorize o tráfego de entrada.

  2. Localize seu arquivo .pem. Estas instruções pressupõem que o arquivo se chame mykeypair.pem e esteja armazenado no diretório inicial do usuário atual.

  3. Digite o seguinte comando para definir as permissões. Substitua ~/mykeypair.pem pelo caminho completo e nome do arquivo de chave privada de par de chaves. Por exemplo, C:/Users/<username>/.ssh/mykeypair.pem.

    chmod 400 ~/mykeypair.pem

    Se você não definir permissões no arquivo .pem, receberá um erro indicando que o arquivo de chave está desprotegido e que a chave será rejeitada. Para conectar, você só precisa definir permissões no arquivo de chave privada do par de chaves ao usá-lo pela primeira vez.

Conectar-se ao nó primário usando o terminal
  1. Abra uma janela do terminal. No Mac OS X, escolha Applications > Utilities > Terminal (Aplicativos > Utilitários > Terminal). Em outras distribuições do Linux, o terminal está normalmente localizado em Applications > Accessories > Terminal (Aplicativos > Acessórios > Terminal).

  2. Para estabelecer uma conexão com o nó primário, digite o comando a seguir. Substitua ec2-###-##-##-###.compute-1.amazonaws.com pelo nome DNS público primário de seu cluster e substitua ~/mykeypair.pem pela caminho completo e nome de arquivo do arquivo .pem. Por exemplo, C:/Users/<username>/.ssh/mykeypair.pem.

    ssh hadoop@ec2-###-##-##-###.compute-1.amazonaws.com -i ~/mykeypair.pem
    Importante

    Você deve usar o nome de logon hadoop ao se conectar ao nó primário do Amazon EMR; caso contrário, poderá ver um erro semelhante a Server refused our key.

  3. Um aviso afirma que não foi possível verificar a autenticidade do host ao qual você está se conectando. Digite yes para continuar.

  4. Quando você encerrar de trabalhar no nó primário, digite o seguinte comando para encerrar a conexão SSH.

    exit

Caso tenha dificuldades ao usar o SSH para se conectar ao nó primário, consulte Solução de problemas para conectar-se à sua instância.

Conectar-se ao nó primário usando SSH no Windows

Os usuários do Windows podem usar um cliente SSH, como o PuTTY para se conectarem ao nó primário. Antes de se conectar ao nó primário do Amazon EMR, você deve baixar e instalar PuTTY e PuTTYgen. Você pode baixar essas ferramentas na página de download do PuTTY.

O PuTTY não oferece suporte nativamente ao formato de arquivo de chave privada com par de chaves (.pem) gerado pelo Amazon EC2. Você usa o PuTTY para converter seu arquivo de chaves no formato PuTTY necessário (.ppk). É necessário converter a chave nesse formato (.ppk) antes de tentar se conectar ao nó primário usando o PuTTY.

Para obter mais informações sobre conversão de chaves, consulte Converting your private key using PuTTYgen no Guia do usuário do Amazon EC2.

Conectar-se ao nó primário usando PuTTY
  1. Verifique se você permitiu tráfego SSH de entrada. Para obter instruções, consulte Antes de se conectar ao Amazon EMR: autorize o tráfego de entrada.

  2. Abra o putty.exe. Você também pode executar o PuTTY na lista de programas do Windows.

  3. Se necessário, na lista Category (Categoria), escolha Session (Sessão).

  4. Para Nome do host (ou endereço IP), digite hadoop@MasterPublicDNS. Por exemplo, hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.

  5. Na lista Category (Categoria), escolha Connection > SSH (Conexão > SSH), Auth.

  6. Para Private key file for authentication (Arquivo de chave privada para autenticação), escolha Browse (Procurar) e selecione o arquivo .ppk que você gerou.

  7. Escolha Abrir e depois Sim para descartar o alerta de segurança do PuTTY.

    Importante

    Quando fizer login no nó primário, digite hadoop se for solicitado a especificar um nome de usuário.

  8. Quando terminar de trabalhar no nó primário, você poderá encerrar a conexão SSH fechando o PuTTY.

    nota

    Para evitar que a conexão SSH atinja o tempo limite, é possível escolher Connection (Conexão) na lista Category (Categoria) e selecionar a opção Enable TCP_keepalives (Habilitar TCP_keepalives). Se você tiver uma sessão SSH ativa no PuTTY, poderá alterar suas configurações abrindo o contexto (botão direito do mouse) para a barra de título do PuTTY e escolhendo Alterar configurações.

Caso tenha dificuldades ao usar o SSH para se conectar ao nó primário, consulte Solução de problemas para conectar-se à sua instância.

Conectar-se ao nó primário usando a AWS CLI

Você pode criar uma conexão SSH com o nó principal usando a AWS CLI no Windows, Linux, Unix e Mac OS X. Qualquer que seja a plataforma, você precisa do nome DNS público do nó primário e de sua chave privada de par de chaves do Amazon EC2. Se estiver usando a AWS CLI no Linux, Unix ou Mac OS X, deverá definir permissões no arquivo de chave privada (.pem ou .ppk), conforme mostrado em Para configurar as permissões do arquivo de chave privada do par de chaves.

Conectar-se ao nó primário usando a AWS CLI
  1. Verifique se você permitiu tráfego SSH de entrada. Para obter instruções, consulte Antes de se conectar ao Amazon EMR: autorize o tráfego de entrada.

  2. Para recuperar o identificador de cluster, digite:

    aws emr list-clusters

    A saída lista seus clusters, incluindo os IDs dos clusters. Observe o ID do cluster ao qual você está se conectando.

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "AWS CLI cluster"
  3. Digite o comando a seguir para abrir uma conexão SSH com o nó primário. No exemplo a seguir, substitua j-2AL4XXXXXX5T9 pelo ID do cluster e substitua ~/mykeypair.key pelo caminho completo e nome do arquivo .pem (para Linux, Unix e Mac OS X) ou arquivo .ppk (para Windows). Por exemplo, C:\Users\<username>\.ssh\mykeypair.pem.

    aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key
  4. Quando terminar de trabalhar no nó primário, feche a janela da AWS CLI.

    Para obter mais informações, consulte os comandos do Amazon EMR na AWS CLI. Caso tenha dificuldades ao usar o SSH para se conectar ao nó primário, consulte Solução de problemas para conectar-se à sua instância.