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.
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.
-
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.
-
Localize seu arquivo
.pem
. Estas instruções pressupõem que o arquivo se chamemykeypair.pem
e esteja armazenado no diretório inicial do usuário atual. -
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
-
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).
-
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 aServer refused our key
. -
Um aviso afirma que não foi possível verificar a autenticidade do host ao qual você está se conectando. Digite
yes
para continuar. -
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
-
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.
-
Abra o
putty.exe
. Você também pode executar o PuTTY na lista de programas do Windows. -
Se necessário, na lista Category (Categoria), escolha Session (Sessão).
-
Para Nome do host (ou endereço IP), digite
hadoop@
MasterPublicDNS
. Por exemplo,hadoop@
ec2-###-##-##-###.compute-1.amazonaws.com
. -
Na lista Category (Categoria), escolha Connection > SSH (Conexão > SSH), Auth.
-
Para Private key file for authentication (Arquivo de chave privada para autenticação), escolha Browse (Procurar) e selecione o arquivo
.ppk
que você gerou. -
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. -
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
-
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.
-
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"
-
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
-
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.