Connessione al nodo primario tramite SSH - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Connessione al nodo primario tramite SSH

Secure Shell (SSH) è un protocollo di rete che può essere utilizzato per creare una connessione sicura a un computer remoto. Dopo aver effettuato il collegamento, il terminale del computer locale si comporta come se fosse in esecuzione sul computer remoto. I comandi emessi localmente vengono eseguiti sul computer remoto e l'output del comando dal computer remoto viene visualizzato nella finestra del terminale.

Quando si utilizza SSH con AWS, ci si connette a un'istanza EC2, che è un server virtuale in esecuzione nel cloud. Quando si lavora con Amazon EMR, l'impiego più comune di SSH è quello di connettersi all'istanza EC2 che sta agendo come nodo primario del cluster.

L'utilizzo di SSH per connettersi al nodo primario consente di monitorare e interagire con il cluster. È possibile eseguire comandi Linux sul nodo primario, eseguire applicazioni come Hive e Pig in modo interattivo, sfogliare le directory, leggere i file di log e così via. Si può anche creare un tunnel nella connessione SSH per visualizzare le interfacce Web ospitate sul nodo primario. Per ulteriori informazioni, consulta Visualizzazione di interfacce Web ospitate su cluster Amazon EMR.

Per connettersi al nodo primario utilizzando SSH, è necessario il nome DNS pubblico del nodo primario. Inoltre, il gruppo di sicurezza associato al nodo primario deve avere una regola in entrata che consenta il traffico SSH (porta TCP 22) da un'origine che include il client da cui viene creata la connessione SSH. Potrebbe essere necessario aggiungere una regola per consentire una connessione SSH dal client. Per ulteriori informazioni sulla modifica delle regole del gruppo di sicurezza, consulta Controllo del traffico di rete con gruppi di sicurezza e Aggiunta di regole a un gruppo di sicurezza nella Guida per l'utente di Amazon EC2 per le istanze Linux.

Recupero del nome DNS pubblico del nodo primario

È possibile recuperare il nome DNS pubblico primario utilizzando la console Amazon EMR e la AWS CLI.

Nota

Abbiamo riprogettato la console Amazon EMR per facilitarne l'utilizzo. Per scoprire le differenze tra la vecchia e la nuova esperienza sulla console, consulta la sezione Novità della console.

New console
Recupero del nome DNS pubblico del nodo primario con la nuova console
  1. Accedi alAWS Management Consolee apri la console Amazon EMR all'indirizzohttps://console.aws.amazon.com/emr.

  2. In EMR on EC2 (EMR su EC2), nel riquadro di navigazione a sinistra, scegli Clusters (Cluster) e seleziona il cluster del quale vuoi recuperare il nome DNS pubblico.

  3. Prendi nota del valore Primary node public DNS (DNS pubblico del nodo primario) che compare nella sezione Summary (Riepilogo) della pagina dei dettagli del cluster.

Old console
Recupero del nome DNS pubblico del nodo primario con la vecchia console
  1. Accedi alla nuova console Amazon EMR e selezionaPassa alla vecchia consoledalla navigazione laterale. Per ulteriori informazioni su cosa aspettarsi quando si passa alla vecchia console, consultaUtilizzo della vecchia console.

  2. Nella pagina Cluster List (Elenco cluster), selezionare il link per il proprio cluster.

  3. Prendi nota del valore Master public DNS (DNS pubblico master) che compare nella sezione Summary (Riepilogo) della pagina Cluster Details (Dettagli cluster).

    Nota

    È inoltre possibile scegliere il collegamento SSH per le istruzioni sulla creazione di una connessione SSH con il nodo primario.

CLI
Recupero del nome DNS pubblico del nodo primario con la AWS CLI
  1. Per recuperare l'identificatore del cluster, digitare il seguente comando:

    aws emr list-clusters

    L'output elenca i cluster, tra cui gli ID del cluster. Prendere nota dell'ID del cluster per il cluster a cui ci si connette.

    "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. Per elencare le istanze del cluster, incluso il nome DNS pubblico del cluster, inserisci uno dei seguenti comandi. Sostituisci j-2AL4XXXXXX5T9 con l'ID cluster restituito dal comando precedente.

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

    O:

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

    L'output elenca le istanze del cluster, compresi i nomi DNS e gli indirizzi IP. Prendere nota del valore per 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": "###.##.#.###"

Per ulteriori informazioni, consulta Comandi di Amazon EMR nella AWS CLI.

Connessione al nodo primario tramite SSH e una chiave privata Amazon EC2 su Linux, Unix e Mac OS X

Per creare una connessione SSH autenticata con un file chiave privato, è necessario specificare la coppia di chiavi Amazon EC2 private all'avvio di un cluster. Per ulteriori informazioni sull'accesso alla coppia di chiavi, consulta Coppia di chiavi Amazon EC2 nella Guida per l'utente di Amazon EC2 per le istanze Linux.

Molto probabilmente il tuo computer Linux include un client SSH per impostazione predefinita. Ad esempio, OpenSSH è installato nella maggior parte dei sistemi operativi Linux, Unix e macOS. È possibile verificare la presenza di un client SSH digitando ssh nella riga di comando. Se il computer non riconosce il comando, installa un client SSH per la connessione al nodo primario. Il progetto OpenSSH fornisce un'implementazione gratuita della suite completa di strumenti SSH. Per ulteriori informazioni, consulta il sito Web OpenSSH.

Le seguenti istruzioni illustrano l'apertura di una connessione SSH al nodo primario Amazon EMR su Linux, Unix e Mac OS X.

Per configurare le autorizzazioni per i file chiave privati della coppia di chiavi

Prima di poter utilizzare la chiave privata della coppia di chiavi Amazon EC2 per creare una connessione SSH, è necessario impostare le autorizzazioni sul file .pem in modo che solo il proprietario della chiave abbia il permesso di accedere al file. Questo è necessario per creare una connessione SSH usando il terminale o la AWS CLI.

  1. Assicurati di aver consentito il traffico SSH in entrata. Per istruzioni, consulta Prima di connetterti: autorizza il traffico in entrata.

  2. Individuare il file .pem. Queste istruzioni presuppongono che il file sia denominato mykeypair.pem e che venga memorizzato nella directory principale dell'utente corrente.

  3. Digitare il seguente comando per impostare le autorizzazioni. Sostituisci ~/mykeypair.pem con il percorso completo e il nome di file della chiave privata della coppia di chiavi. Ad esempio C:/Users/<username>/.ssh/mykeypair.pem.

    chmod 400 ~/mykeypair.pem

    Se non si impostano le autorizzazioni sul file .pem, si riceverà un errore che indica che il file chiave non è protetto e la chiave verrà rifiutata. Per connettersi, è sufficiente impostare le autorizzazioni sul file chiave privata della coppia di chiavi la prima volta che lo si utilizza.

Connessione al nodo primario utilizzando il terminale
  1. Apri una finestra del terminale. In Mac OS X, selezionare Applications > Utilities > Terminal (Applicazioni > Utility > Terminale). In altre distribuzioni Linux, la finestra terminal si trova generalmente in Applications > Accessories > Terminal (Applicazioni > Accessori >; Terminale).

  2. Per stabilire una connessione al nodo primario, inserisci il seguente comando. Sostituisciec2-###-#-#-#-###.compute-1.amazonaws.comcon il nome DNS pubblico primario del cluster e sostituisci~/mykeypair.pemcon il percorso completo e il nome del file del tuo.pemfascicolo. Ad esempio, C:/Users/<username>/.ssh/mykeypair.pem.

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

    Quando si esegue la connessione al nodo primario di Amazon EMR occorre utilizzare il nome di login hadoop, altrimenti potrebbe verificarsi un errore simile a Server refused our key.

  3. Un avviso indica che non è possibile verificare l'autenticità dell'host a cui ci si connette. Per continuare, digitare yes.

  4. Una volta terminato il lavoro sul nodo primario, inserisci il seguente comando per chiudere la connessione SSH.

    exit

Se riscontri problemi nell'utilizzo di SSH per la connessione al nodo primario, consulta la sezione Troubleshoot connecting to your instance (Risoluzione dei problemi di connessione all'istanza).

Connessione al nodo primario tramite SSH su Windows

Gli utenti Windows possono utilizzare un client SSH come PuTTY per connettersi al nodo primario. Prima di connettersi al nodo primario Amazon EMR, è necessario scaricare e installare PuTTY e PuTTYgen. Questi strumenti possono essere scaricati dalla pagina di download di PuTTY.

PuTTY non supporta a livello nativo il formato di file per la chiave privata della coppia di chiavi (.pem) generato da Amazon EC2. Si utilizza PuTTYgen per convertire il file chiave nel formato PuTTY richiesto (.ppk). È necessario convertire la chiave privata nel formato .ppk prima di tentare una connessione al nodo primario tramite PuTTY.

Per maggiori informazioni sulla conversione della chiave, consulta Conversione della chiave privata utilizzando PuTTYgen nella Guida per l'utente di Amazon EC2 per le istanze Linux.

Connessione al nodo primario usando PuTTY
  1. Assicurati di aver consentito il traffico SSH in entrata. Per istruzioni, consulta Prima di connetterti: autorizza il traffico in entrata.

  2. Aprire putty.exe. È anche possibile avviare PuTTY dall'elenco dei programmi di Windows.

  3. Se necessario, nell'elenco Category (Categoria) selezionare Session (Sessione).

  4. PerNome host (o indirizzo IP), tipohadoop@MasterPublicDNS. Ad esempio: hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.

  5. Nell'elenco Category (Categoria) scegliere Connection > SSH (Connessione > SSH), Auth (Autenticazione).

  6. Per Private key file for authentication (File chiave privata per autenticazione), scegliere Browse (Sfoglia) e selezionare il file .ppk generato.

  7. Seleziona Open (Apri), quindi Yes (Sì) per ignorare l'avviso di sicurezza di PuTTY.

    Importante

    Quando accedi al nodo primario, inserisci hadoop nel caso in cui venga richiesto un nome utente.

  8. Una volta terminato il lavoro sul nodo primario puoi chiudere la connessione SSH chiudendo PuTTY.

    Nota

    Per evitare il timeout della connessione SSH, scegliere Connection (Connessione) nell'elenco Category (Categoria) e selezionare l'opzione Enable TCP_keepalives (Abilita TCP_keepalives). Se si dispone di una sessione SSH attiva in PuTTY, è possibile modificare le impostazioni aprendo il contesto (clic con il tasto destro del mouse) per la barra del titolo di PuTTY e scegliendo Change Settings (Modifica impostazioni).

Se riscontri problemi nell'utilizzo di SSH per la connessione al nodo primario, consulta la sezione Troubleshoot connecting to your instance (Risoluzione dei problemi di connessione all'istanza).

Connessione al nodo primario tramite la AWS CLI

È possibile creare una connessione SSH con il nodo primario utilizzando la AWS CLI su Windows e su Linux, Unix e Mac OS X. Indipendentemente dalla piattaforma, occorrono il nome DNS pubblico del nodo primario e la chiave privata della coppia di chiavi Amazon EC2. Se si utilizza AWS CLI su Linux, Unix o Mac OS X, è necessario anche impostare le autorizzazioni per il file della chiave privata (.pem o .ppk) come mostrato in Per configurare le autorizzazioni per i file chiave privati della coppia di chiavi.

Connessione al nodo primario con la AWS CLI
  1. Assicurati di aver consentito il traffico SSH in entrata. Per istruzioni, consulta Prima di connetterti: autorizza il traffico in entrata.

  2. Per recuperare l'identificatore del cluster, digitare:

    aws emr list-clusters

    L'output elenca i cluster, tra cui gli ID del cluster. Prendere nota dell'ID del cluster per il cluster a cui ci si connette.

    "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. Inserisci il seguente comando per aprire una connessione SSH al nodo primario. Sostituisci nell'esempio seguente j-2AL4XXXXXX5T9 con l'ID del cluster e sostituisci ~/mykeypair.key con il percorso completo e il nome del file .pem (per Linux, Unix e Mac OS X) o del file .ppk (per Windows). Ad esempio C:\Users\<username>\.ssh\mykeypair.pem.

    aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key
  4. Una volta terminato il lavoro sul nodo primario, chiudi la finestra AWS CLI.

    Per ulteriori informazioni, consulta Comandi Amazon EMR nella AWS CLI. Se riscontri problemi nell'utilizzo di SSH per la connessione al nodo primario, consulta la sezione Troubleshoot connecting to your instance (Risoluzione dei problemi di connessione all'istanza).