Disponibilità e affidabilità dei cluster Hadoop in HDInsightAvailability and reliability of Hadoop clusters in HDInsight

I cluster HDInsight offrono due nodi head per aumentare la disponibilità e l'affidabilità dei servizi e dei processi di Hadoop in esecuzione.HDInsight clusters provide two head nodes to increase the availability and reliability of Hadoop services and jobs running.

Hadoop ottiene alta disponibilità e affidabilità replicando i servizi e i dati su più nodi di un cluster.Hadoop achieves high availability and reliability by replicating services and data across multiple nodes in a cluster. Tuttavia le distribuzioni standard di Hadoop hanno in genere un singolo nodo head.However standard distributions of Hadoop typically have only a single head node. Eventuali interruzioni del singolo nodo head possono causare l'interruzione del funzionamento del cluster.Any outage of the single head node can cause the cluster to stop working. HDInsight fornisce due nodi head per migliorare la disponibilità e affidabilità di Hadoop.HDInsight provides two headnodes to improve Hadoop's availability and reliability.

Importante

Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva.Linux is the only operating system used on HDInsight version 3.4 or greater. Per altre informazioni, vedere la sezione relativa al ritiro di HDInsight in Windows.For more information, see HDInsight retirement on Windows.

Disponibilità e affidabilità dei nodiAvailability and reliability of nodes

I nodi in un cluster HDInsight vengono implementati con macchine virtuali di Azure.Nodes in an HDInsight cluster are implemented using Azure Virtual Machines. Le sezioni seguenti illustrano i singoli tipi di nodo usati con HDInsight.The following sections discuss the individual node types used with HDInsight.

Nota

Non tutti i tipi di nodo vengono usati per un tipo di cluster.Not all node types are used for a cluster type. Ad esempio, un tipo di cluster Hadoop non ha alcun nodo Nimbus.For example, a Hadoop cluster type does not have any Nimbus nodes. Per altre informazioni sui nodi usati dai tipi di cluster HDInsight, vedere la sezione Tipi di cluster del documento Creare cluster Hadoop in HDInsight.For more information on nodes used by HDInsight cluster types, see the Cluster types section of the Create Linux-based Hadoop clusters in HDInsight document.

Nodi headHead nodes

Per garantire un'alta disponibilità dei servizi Hadoop, HDInsight fornisce due nodi head.To ensure high availability of Hadoop services, HDInsight provides two head nodes. Entrambi i nodi head sono contemporaneamente attivi e in esecuzione all'interno del cluster HDInsight.Both head nodes are active and running within the HDInsight cluster simultaneously. Alcuni servizi, ad esempio HDFS o YARN, sono "attivi"in qualsiasi momento soltanto in un nodo head.Some services, such as HDFS or YARN, are only 'active' on one head node at any given time. Altri servizi come HiveServer2 o Hive Metastore sono attivi su entrambi i nodi head allo tesso tempo.Other services such as HiveServer2 or Hive MetaStore are active on both head nodes at the same time.

I nodi head, e altri nodi in HDInsight, hanno un valore numerico all'interno del nome host del nodo.Head nodes (and other nodes in HDInsight) have a numeric value as part of the hostname of the node. Ad esempio, hn0-CLUSTERNAME o hn4-CLUSTERNAME.For example, hn0-CLUSTERNAME or hn4-CLUSTERNAME.

Importante

Non associare il valore numerico con il fatto che un nodo sia primario o secondario.Do not associate the numeric value with whether a node is primary or secondary. Il valore numerico serve solo per specificare un nome univoco per ogni nodo.The numeric value is only present to provide a unique name for each node.

Nodi NimbusNimbus Nodes

I nodi nimbus sono disponibili con i cluster Storm.Nimbus nodes are available with Storm clusters. I nodi Nimbus forniscono una funzionalità simile a JobTracker di Hadoop mediante la distribuzione e il monitoraggio dell'elaborazione tra nodi del ruolo di lavoro.The Nimbus nodes provide similar functionality to the Hadoop JobTracker by distributing and monitoring processing across worker nodes. HDInsight offre due nodi Nimbus per i cluster StormHDInsight provides two Nimbus nodes for Storm clusters

Nodi ZookeeperZookeeper nodes

I nodi ZooKeeper vengono usati per la designazione di leader dei servizi master nei nodi head.ZooKeeper nodes are used for leader election of master services on head nodes. Vengono inoltre usati per garantire che i servizi, i nodi di dati (ruolo di lavoro) e i gateway sappiano su quale nodo head è attivo un servizio master.They are also used to insure that services, data (worker) nodes, and gateways know which head node a master service is active on. Per impostazione predefinita, HDInsight specifica tre nodi ZooKeeper.By default, HDInsight provides three ZooKeeper nodes.

Nodi di lavoroWorker nodes

I nodi di lavoro eseguono l'analisi dei dati effettivi quando un processo viene inviato al cluster.Worker nodes perform the actual data analysis when a job is submitted to the cluster. In caso di errore di un nodo del ruolo di lavoro, l'attività che il nodo stava eseguendo viene inviata a un altro nodo del ruolo di lavoro.If a worker node fails, the task that it was performing is submitted to another worker node. Per impostazione predefinita, HDInsight crea quattro nodi del ruolo di lavoro.By default, HDInsight creates four worker nodes. È possibile modificare questo numero in base alle proprie esigenze, durante e dopo la creazione del cluster.You can change this number to suit your needs both during and after cluster creation.

Nodo perimetraleEdge node

Un nodo perimetrale non partecipa attivamente all'analisi dei dati all'interno del cluster.An edge node does not actively participate in data analysis within the cluster. Viene usato dagli sviluppatori o i data scientist quando lavorano con Hadoop.It is used by developers or data scientists when working with Hadoop. Il nodo perimetrale si trova nella stessa rete virtuale di Azure come gli altri nodi del cluster e può accedere direttamente a tutti gli altri nodi.The edge node lives in the same Azure Virtual Network as the other nodes in the cluster, and can directly access all other nodes. Il nodo perimetrale può essere usato senza sottrarre risorse ai servizi critici di Hadoop o ai processi di analisi.The edge node can be used without taking resources away from critical Hadoop services or analysis jobs.

Attualmente, Server R in HDInsight è l'unico tipo di cluster che fornisce un nodo perimetrale per impostazione predefinita.Currently, R Server on HDInsight is the only cluster type that provides an edge node by default. Per Server R in HDInsight, il nodo perimetrale viene usato per testare il codice R in locale nel nodo prima dell'invio al cluster per l'elaborazione distribuita.For R Server on HDInsight, the edge node is used test R code locally on the node before submitting it to the cluster for distributed processing.

Per informazioni sull'uso di un nodo perimetrale con tipi di cluster diversi da R Server, vedere il documento Usare nodi perimetrali vuoti in HDInsight.For information on using an edge node with cluster types other than R Server, see the Use edge nodes in HDInsight document.

Accesso ai nodi headAccessing the nodes

L'accesso al cluster tramite Internet avviene mediante un gateway pubblico.Access to the cluster over the internet is provided through a public gateway. L'accesso è limitato alla connessione ai nodi head e, se presente, al nodo perimetrale.Access is limited to connecting to the head nodes and (if one exists) the edge node. L'accesso ai servizi in esecuzione nei nodi head non avviene con più nodi head.Access to services running on the head nodes is not effected by having multiple head nodes. Il gateway pubblico instrada le richieste al nodo head che ospita il servizio richiesto.The public gateway routes requests to the head node that hosts the requested service. Ad esempio, se Ambari è attualmente ospitato nel nodo head secondario, il gateway instrada le richieste in ingresso per Ambari a quel nodo.For example, if Ambari is currently hosted on the secondary head node, the gateway routes incoming requests for Ambari to that node.

L'accesso tramite il gateway pubblico è limitato alle porte 443 (HTTPS), 22 e 23.Access over the public gateway is limited to port 443 (HTTPS), 22, and 23.

  • La porta 443 viene usata per accedere ad Ambari e ad altre interfacce utente Web o API REST ospitate nei nodi head.Port 443 is used to access Ambari and other web UI or REST APIs hosted on the head nodes.

  • La porta 22 viene usata per accedere al nodo head primario o a un nodo perimetrale con SSH.Port 22 is used to access the primary head node or edge node with SSH.

  • La porta 23 viene usata per accedere al nodo head secondario con SSH.Port 23 is used to access the secondary head node with SSH. Ad esempio, ssh username@mycluster-ssh.azurehdinsight.net si connette al nodo head primario del cluster denominato mycluster.For example, ssh username@mycluster-ssh.azurehdinsight.net connects to the primary head node of the cluster named mycluster.

Per altre informazioni sull'uso di SSH, vedere il documento Connettersi a HDInsight (Hadoop) con SSH.For more information on using SSH, see the Use SSH with HDInsight document.

Nomi di dominio completo interni (FQDN) Internal fully qualified domain names (FQDN)

I nodi di un cluster HDInsight hanno un indirizzo IP interno e un FQDN accessibili solo dal cluster.Nodes in an HDInsight cluster have an internal IP address and FQDN that can only be accessed from the cluster. Quando si accede ai servizi del cluster utilizzando l'indirizzo IP o i FQDN interni, è necessario utilizzare Ambari per verificare l'IP o i FQDN da utilizzare per l’accesso al servizio.When accessing services on the cluster using the internal FQDN or IP address, you should use Ambari to verify the IP or FQDN to use when accessing the service.

Ad esempio, il servizio Oozie può essere eseguito solo su un nodo head e l’utilizzo del comando oozie da una sessione SSH richiede l'URL del servizio.For example, the Oozie service can only run on one head node, and using the oozie command from an SSH session requires the URL to the service. Tale URL può essere recuperato da Ambari tramite il comando seguente:This URL can be retrieved from Ambari by using the following command:

curl -u admin:PASSWORD "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations?type=oozie-site&tag=TOPOLOGY_RESOLVED" | grep oozie.base.url

Il comando restituisce un valore simile al seguente, che contiene l'URL interno da usare con il comando oozie:This command returns a value similar to the following command, which contains the internal URL to use with the oozie command:

"oozie.base.url": "http://hn0-CLUSTERNAME-randomcharacters.cx.internal.cloudapp.net:11000/oozie"

Per altre informazioni sull'uso dell'API REST Ambari, vedere Gestire i cluster HDInsight mediante l'API REST Ambari.For more information on working with the Ambari REST API, see Monitor and Manage HDInsight using the Ambari REST API.

Accesso ad altri tipi di nodoAccessing other node types

È possibile connettersi ai nodi non accessibili direttamente tramite Internet usando i metodi seguenti:You can connect to nodes that are not directly accessible over the internet by using the following methods:

Come controllare lo stato di un servizioHow to check on a service status

Per controllare lo stato dei servizi in esecuzione nei nodi head, usare l'interfaccia utente Web di Ambari o l'API REST Ambari.To check the status of services that run on the head nodes, use the Ambari Web UI or the Ambari REST API.

Interfaccia utente Web AmbariAmbari Web UI

L'interfaccia utente Web Ambari è visualizzabile all'indirizzo https://CLUSTERNAME.azurehdinsight.net.The Ambari Web UI is viewable at https://CLUSTERNAME.azurehdinsight.net. Sostituire CLUSTERNAME con il nome del cluster.Replace CLUSTERNAME with the name of your cluster. Se richiesto, immettere le credenziali dell’utente HTTP del cluster.If prompted, enter the HTTP user credentials for your cluster. Il nome utente HTTP predefinito è admin e la password è la password inserita durante la creazione del cluster.The default HTTP user name is admin and the password is the password you entered when creating the cluster.

Nella pagina di Ambari i servizi installati sono elencati a sinistra.When you arrive on the Ambari page, the installed services are listed on the left of the page.

Servizi installati

Esistono molte icone che possono essere visualizzate accanto a un servizio per indicare lo stato.There are a series of icons that may appear next to a service to indicate status. È possibile visualizzare eventuali avvisi relativi a un servizio utilizzando il collegamento Avvisi nella parte superiore della pagina.Any alerts related to a service can be viewed using the Alerts link at the top of the page. È possibile selezionare ogni servizio per visualizzare ulteriori informazioni su di esso.You can select each service to view more information on it.

La pagina del servizio fornisce informazioni sullo stato e sulla configurazione di ogni servizio, ma non indica su quale nodo head esso è in esecuzione.While the service page provides information on the status and configuration of each service, it does not provide information on which head node the service is running on. Per visualizzare questa informazione, utilizzare il collegamento Host nella parte superiore della pagina.To view this information, use the Hosts link at the top of the page. La pagina visualizza gli host del cluster, inclusi i nodi head.This page displays hosts within the cluster, including the head nodes.

elenco di host

Quando si seleziona il collegamento per uno dei nodi head, vengono visualizzati i servizi e i componenti in esecuzione su tale nodo.Selecting the link for one of the head nodes displays the services and components running on that node.

Stato dei componenti

Per altre informazioni sull'uso di Ambari, vedere Gestire i cluster HDInsight mediante l'uso dell'interfaccia utente Web Ambari.For more information on using Ambari, see Monitor and manage HDInsight using the Ambari Web UI.

API REST AmbariAmbari REST API

L'API REST Ambari è disponibile su Internet.The Ambari REST API is available over the internet. Il gateway pubblico HDInsight gestisce il routing delle richieste per il nodo head che attualmente ospita l'API REST.The HDInsight public gateway handles routing requests to the head node that is currently hosting the REST API.

È possibile utilizzare il comando seguente per verificare lo stato di un servizio tramite l'API REST di Ambari:You can use the following command to check the state of a service through the Ambari REST API:

curl -u admin:PASSWORD https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/SERVICENAME?fields=ServiceInfo/state
  • Sostituire PASSWORD con la password dell'account dell'utente HTTP (admin).Replace PASSWORD with the HTTP user (admin) account password.
  • Sostituire CLUSTERNAME con il nome del cluster.Replace CLUSTERNAME with the name of the cluster.
  • Sostituire SERVICENAME con il nome del servizio di cui controllare lo stato.Replace SERVICENAME with the name of the service you want to check the status of.

Ad esempio, per controllare lo stato del servizio HDFS in un cluster denominato mycluster, con la password password, è necessario usare il comando seguente:For example, to check the status of the HDFS service on a cluster named mycluster, with a password of password, you would use the following command:

curl -u admin:password https://mycluster.azurehdinsight.net/api/v1/clusters/mycluster/services/HDFS?fields=ServiceInfo/state

La risposta restituita è simile al codice JSON seguente:The response is similar to the following JSON:

{
  "href" : "http://hn0-CLUSTERNAME.randomcharacters.cx.internal.cloudapp.net:8080/api/v1/clusters/mycluster/services/HDFS?fields=ServiceInfo/state",
  "ServiceInfo" : {
    "cluster_name" : "mycluster",
    "service_name" : "HDFS",
    "state" : "STARTED"
  }
}

L'URL indica che il servizio è attualmente in esecuzione sul nodo head denominato hn0-CLUSTERNAME.The URL tells us that the service is currently running on a head node named hn0-CLUSTERNAME.

Lo stato indica che il servizio è in esecuzione, o AVVIATO.The state tells us that the service is currently running, or STARTED.

Se non si sa quali servizi siano installati nel cluster, è possibile usare il comando seguente per recuperarne l'elenco:If you do not know what services are installed on the cluster, you can use the following command to retrieve a list:

curl -u admin:PASSWORD https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services

Per altre informazioni sull'uso dell'API REST Ambari, vedere Gestire i cluster HDInsight mediante l'API REST Ambari.For more information on working with the Ambari REST API, see Monitor and Manage HDInsight using the Ambari REST API.

Componenti del servizioService components

I servizi possono includere componenti di cui si desidera controllare lo stato singolarmente.Services may contain components that you wish to check the status of individually. HDFS, ad esempio, contiene il componente NameNode.For example, HDFS contains the NameNode component. Per visualizzare informazioni su un componente, il comando è:To view information on a component, the command would be:

curl -u admin:PASSWORD https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/SERVICE/components/component

Se non si sa quali componenti siano specificati da un servizio, è possibile usare il comando seguente per recuperarne l'elenco:If you do not know what components are provided by a service, you can use the following command to retrieve a list:

curl -u admin:PASSWORD https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/SERVICE/components/component

Come accedere ai file di log nel nodo headHow to access log files on the head nodes

SSHSSH

Durante la connessione a un nodo head tramite SSH, i file di registro sono disponibili su /var/log.While connected to a head node through SSH, log files can be found under /var/log. Ad esempio, /var/log/hadoop-yarn/yarn contiene i registri per YARN.For example, /var/log/hadoop-yarn/yarn contain logs for YARN.

Ogni nodo head può avere voci di registro univoche, perciò è consigliabile controllare i registri su entrambi.Each head node can have unique log entries, so you should check the logs on both.

SFTPSFTP

È anche possibile connettersi al nodo head usando SSH File Transfer Protocol o Secure File Transfer Protocol (SFTP) e scaricare direttamente i file di log.You can also connect to the head node using the SSH File Transfer Protocol or Secure File Transfer Protocol (SFTP), and download the log files directly.

In modo analogo all'uso di un client SSH, quando si stabilisce la connessione al cluster è necessario specificare il nome dell'account utente SSH e l'indirizzo SSH del cluster.Similar to using an SSH client, when connecting to the cluster you must provide the SSH user account name and the SSH address of the cluster. Ad esempio, sftp username@mycluster-ssh.azurehdinsight.net.For example, sftp username@mycluster-ssh.azurehdinsight.net. Specificare la password per l'account quando richiesto oppure specificare una chiave pubblica tramite il parametro -i.Provide the password for the account when prompted, or provide a public key using the -i parameter.

Una volta connessi, viene visualizzato un prompt sftp> .Once connected, you are presented with a sftp> prompt. Da questo prompt è possibile modificare le directory nonché caricare e scaricare i file.From this prompt, you can change directories, upload, and download files. Ad esempio, i comandi seguenti consentono di passare alla directory /var/log/hadoop/hdfs directory e quindi scaricare tutti i file nella directory.For example, the following commands change directories to the /var/log/hadoop/hdfs directory and then download all files in the directory.

cd /var/log/hadoop/hdfs
get *

Per un elenco di comandi disponibili, immettere help al prompt sftp>.For a list of available commands, enter help at the sftp> prompt.

Nota

Esistono anche interfacce grafiche che consentono di visualizzare il file system quando si è connessi tramite SFTP.There are also graphical interfaces that allow you to visualize the file system when connected using SFTP. Ad esempio, MobaXTerm consente di sfogliare il file system con un'interfaccia simile a Esplora risorse.For example, MobaXTerm allows you to browse the file system using an interface similar to Windows Explorer.

AmbariAmbari

Nota

Per accedere ai file di log tramite Ambari, è necessario usare un tunnel SSH.To access log files using Ambari, you must use an SSH tunnel. Le interfacce Web per i singoli servizi non sono esposte pubblicamente su Internet.The web interfaces for the individual services are not exposed publicly on the Internet. Per informazioni sull'uso del tunnel SSH, vedere il documento Usare il tunneling SSH.For information on using an SSH tunnel, see the Use SSH Tunneling document.

Dall'interfaccia utente Web di Ambari, selezionare il servizio di cui si vogliono visualizzare i log, ad esempio, YARN.From the Ambari Web UI, select the service you wish to view logs for (for example, YARN). Usare quindi Collegamenti rapidi per selezionare il nodo head di cui visualizzare i log.Then use Quick Links to select which head node to view the logs for.

Utilizzo dei collegamenti rapidi per visualizzare i registri

Come configurare le dimensioni del nodoHow to configure the node size

È possibile selezionare le dimensioni di un nodo solo durante la creazione del cluster.The size of a node can only be selected during cluster creation. È possibile trovare un elenco delle varie dimensioni di VM disponibili per HDInsight sulla pagina dei prezzi di HDInsight.You can find a list of the different VM sizes available for HDInsight on the HDInsight pricing page.

Quando si crea un cluster, è possibile specificare le dimensioni dei nodi.When creating a cluster, you can specify the size of the nodes. Di seguito viene illustrato come specificare le dimensioni usando il portale di Azure, Azure PowerShell e l'interfaccia della riga di comando di Azure:The following information provides guidance on how to specify the size using the Azure portal, Azure PowerShell, and the Azure CLI:

  • Portale di Azure: quando si crea un cluster, è possibile impostare le dimensioni dei nodi usati dal cluster:Azure portal: When creating a cluster, you can set the size of the nodes used by the cluster:

    Immagine della creazione guidata di cluster con la selezione delle dimensioni del nodo

  • Interfaccia della riga di comando di Azure: quando si usa il comando azure hdinsight cluster create, è possibile impostare le dimensioni dei nodi head, di lavoro e ZooKeeper usando i parametri --headNodeSize, --workerNodeSize e --zookeeperNodeSize.Azure CLI: When using the azure hdinsight cluster create command, you can set the size of the head, worker, and ZooKeeper nodes by using the --headNodeSize, --workerNodeSize, and --zookeeperNodeSize parameters.

  • Azure PowerShell: quando si usa il cmdlet New-AzureRmHDInsightCluster, è possibile impostare le dimensioni dei nodi head, di lavoro e ZooKeeper usando i parametri -HeadNodeVMSize, -WorkerNodeSize e -ZookeeperNodeSize.Azure PowerShell: When using the New-AzureRmHDInsightCluster cmdlet, you can set the size of the head, worker, and ZooKeeper nodes by using the -HeadNodeVMSize, -WorkerNodeSize, and -ZookeeperNodeSize parameters.

Passaggi successiviNext steps

Per altre informazioni sugli aspetti menzionati in questo documento, usare i collegamenti seguenti.Use the following links to learn more about things mentioned in this document.