Usare il tunneling SSH per accedere all'interfaccia utente Web di Apache Ambari, JobHistory, NameNode, Apache Oozie e altre interfacce utente

I cluster HDInsight forniscono l'accesso all'interfaccia utente Web di Apache Ambari tramite Internet. Alcune funzionalità richiedono un tunnel SSH. Ad esempio, l'interfaccia utente Web di Apache Oozie non può essere accessibile tramite Internet senza un tunnel SSH.

Perché usare un tunnel SSH

Diversi menu di Ambari funzionano solo con un tunnel SSH. Questi menu si basano su servizi e siti Web in esecuzione in altri tipi di nodi, ad esempio i nodi di lavoro.

Le interfacce utente Web seguenti richiedono un tunnel SSH:

  • JobHistory
  • NameNode
  • Thread Stacks
  • Interfaccia utente Web di Oozie
  • HBase Master e l'interfaccia utente di Log

I servizi installati con azioni script che espongono un servizio Web richiederanno un tunnel SSH. Hue installato con l'azione script richiede un tunnel SSH per accedere all'interfaccia utente Web.

Importante

Se si ha accesso diretto a HDInsight tramite una rete virtuale, non è necessario usare tunnel SSH. Per un esempio di accesso diretto a HDInsight tramite una rete virtuale, vedere il documento Connettere HDInsight alla rete locale.

Che cos'è un tunnel SSH

Il tunneling di Secure Shell, ovvero SSH, connette una porta del computer locale a un nodo head in HDInsight. Il traffico inviato alla porta locale viene instradato attraverso una connessione SSH al nodo head. La richiesta viene risolta come se fosse stata originata nel nodo head. La risposta viene instradata attraverso il tunnel alla workstation in uso.

Prerequisiti

  • Un client SSH. Per altre informazioni, vedere Connettersi a HDInsight (Apache Hadoop) con SSH.

  • Un Web browser che può essere configurato per l'uso di un proxy SOCKS5.

    Avviso

    Il supporto per il proxy SOCKS integrato nelle impostazioni Internet di Windows non supporta SOCKS5 e non può essere usato per la procedura descritta in questo documento. I browser seguenti si basano sulle impostazioni proxy di Windows e non possono essere usati per la procedura illustrata in questo documento:

    • Microsoft Edge
    • Microsoft Internet Explorer

    Anche Google Chrome si basa sulle impostazioni proxy di Windows. In questo caso, tuttavia, è possibile installare estensioni che supportano SOCKS5, tra cui FoxyProxy Standard (opzione consigliata).

Creare un tunnel con il comando SSH

Utilizzare il comando seguente per creare un SSH tunnel utilizzando il comando ssh . Sostituire sshuser con un utente SSH per il cluster HDInsight e sostituire CLUSTERNAME con il nome del cluster HDInsight:

ssh -C2qTnNf -D 9876 sshuser@CLUSTERNAME-ssh.azurehdinsight.net

Questo comando crea una connessione che instrada il traffico alla porta locale 9876 al cluster su SSH. Le opzioni sono:

Opzione Descrizione
D 9876 Porta locale che instrada il traffico attraverso il tunnel.
A Comprimere tutti i dati, perché il traffico Web è principalmente testo.
2 Forzare SSH a provare solo la versione 2 del protocollo.
q Modalità non interattiva.
T Disabilitare l'allocazione pseudo-tty, perché si sta semplicemente inoltrando una porta.
n Impedire la lettura di STDIN, perché si sta semplicemente inoltrando una porta.
N Non eseguire un comando remoto, perché si sta semplicemente inoltrando una porta.
f Esecuzione in background.

Al termine del comando, il traffico inviato alla porta 9876 nel computer locale viene instradato al nodo head del cluster.

Creare un tunnel utilizzando PuTTY

PuTTY è un client SSH grafico per Windows. Se non si ha familiarità con PuTTY, vedere la documentazione di PuTTY. Usare la procedura seguente per creare un tunnel SSH con PuTTY:

Creare o caricare una sessione

  1. Aprire PuTTY e assicurarsi che la Sessione sia selezionata nel menu a sinistra. Se è già stata salvata una sessione, selezionare il nome della sessione dall'elenco Sessioni salvate e selezionare Carica.

  2. Se non si ha già una sessione salvata, immettere le informazioni di connessione:

    Proprietà valore
    Nome host (o indirizzo IP) Indirizzo SSH per il cluster HDInsight. Ad esempio, mycluster-ssh.azurehdinsight.net.
    Port 22
    Tipo Connection SSH
  3. Seleziona Salva

    HDInsight create putty session.

  4. Nella sezione Category sul lato sinistro della finestra di dialogo espandere Connection, SSH e infine selezionare Tunnels.

  5. Fornire le seguenti informazioni nel modulo Options controlling SSH port forwarding :

    Proprietà valore
    Porta di origine Porta sul client da inoltrare. Ad esempio, 9876.
    Destinazione Indirizzo SSH per il cluster HDInsight. Ad esempio, mycluster-ssh.azurehdinsight.net.
    Dinamico Abilita il routing dinamico del proxy SOCKS.

    PuTTY Configuration tunneling options.

  6. Selezionare Aggiungi per aggiungere le impostazioni e quindi selezionare Apri per aprire una connessione SSH.

  7. Quando richiesto, accedere al server.

Usare il tunnel dal browser

Importante

Nella procedura illustrata in questa sezione viene usato il browser Mozilla FireFox, poiché prevede le stesse impostazioni proxy per tutte le piattaforme. È possibile che altri browser moderni, tra cui Google Chrome, richiedano un'estensione come FoxyProxy per poter interagire con il tunnel.

  1. Configurare il browser in modo che usi localhost e la porta usata al momento della creazione del tunnel come proxy SOCKS v5. Ecco visualizzate le impostazioni di Firefox. Se si usa una porta diversa da quella 9876, cambiare la porta con quella usata:

    firefox browser proxy settings.

    Nota

    Se si seleziona Remote DNS, le richieste DNS (Domain Name System) vengono risolte usando il cluster HDInsight. Questa impostazione risolve DNS usando il nodo head del cluster.

  2. Per verificare il funzionamento del tunnel, visitare un sito, ad esempio https://www.whatismyip.com/. L'indirizzo IP restituito deve essere uno usato dal data center di Microsoft Azure.

Verificare con l’interfaccia utente web di Ambari

Una volta stabilito il cluster, utilizzare la procedura seguente per verificare che sia possibile accedere all’interfaccia utente del servizio dal web Ambari:

  1. Nel browser, accedere a http://headnodehost:8080. L'indirizzo headnodehost viene inviato al cluster tramite il tunnel e risolto nel nodo head in cui è in esecuzione Ambari. Quando richiesto, immettere il nome dell'account amministratore (admin) e la password per il cluster. Può essere richiesto una seconda volta dall'interfaccia utente web di Ambari. In tal caso, è necessario immettere nuovamente le informazioni.

    Nota

    Quando si usa l'indirizzo http://headnodehost:8080 per connettersi al cluster, la connessione viene stabilita tramite il tunnel. La comunicazione viene protetta usando il tunnel SSH invece di HTTPS. Per connettersi tramite Internet tramite HTTPS, usare https://clustername.azurehdinsight.net, dove clustername è il nome del cluster.

  2. Dall'interfaccia utente Web di Ambari, selezionare HDFS dall'elenco a sinistra della pagina.

    Apache Ambari hdfs service selected.

  3. Quando le informazioni del servizio HDFS vengono visualizzate, selezionare Collegamenti rapidi. Verrà visualizzato un elenco di nodi head del cluster. Selezionare uno dei nodi head e quindi selezionare l' interfaccia utente di NameNode.

    Image with the QuickLinks menu expanded.

    Nota

    Quando si seleziona Quick Links (Collegamenti rapidi), è possibile che venga visualizzato un indicatore di attesa. Questa condizione può verificarsi se la connessione Internet è lenta. Attendere un minuto o due perché i dati vengano ricevuti dal server, poi riprovare con l'elenco.

    Alcune voci del menu Quick Links (Collegamenti rapidi) potrebbero risultare troncate sul lato destro della schermata. In tal caso, espandere il menu con il mouse e usare il tasto freccia destra per scorrere la schermata verso destra e visualizzare il resto del menu.

  4. Viene visualizzata una pagina simile all'immagine seguente:

    Image of the Hadoop NameNode UI.

    Nota

    Si noti l'URL della pagina, che dovrebbe essere simile a http://hn*.randomcharacters.cx.internal.cloudapp.net:8088/cluster. Questo URI usa il nome di dominio interno completo (FQDN) del nodo ed è accessibile solo quando si usa un tunnel SSH.

Passaggi successivi

Dopo aver appreso come creare e usare un tunnel SSH, vedere il documento seguente per altri modi per usare Ambari: