Condividi tramite


Riavviare le macchine virtuali per i cluster HDInsight

I cluster Azure HDInsight contengono gruppi di macchine virtuali (VM) come nodi del cluster. Per i cluster a esecuzione prolungata, questi nodi potrebbero non rispondere per vari motivi. Questo articolo descrive come riavviare le macchine virtuali che non rispondono in un cluster HDInsight.

Quando riavviare

Avviso

Quando si riavviano le macchine virtuali in un cluster, il nodo non è disponibile per l'uso e i servizi nel nodo devono essere riavviati.

Quando un nodo viene riavviato, il cluster potrebbe diventare non integro e i processi potrebbero rallentare o non riuscire. Se si sta tentando di riavviare il nodo head attivo, tutti i processi in esecuzione verranno arrestati. Non sarà possibile inviare processi al cluster finché i servizi non saranno nuovamente operativi. Per questi motivi, è consigliabile riavviare le macchine virtuali solo quando necessario. Valutare la possibilità di riavviare le macchine virtuali quando:

  • Non è possibile usare SSH per accedere al nodo, ma risponde ai ping.
  • Il nodo di lavoro è inattivo senza heartbeat nell'interfaccia utente di Ambari.
  • Il disco temporaneo è pieno nel nodo.
  • La tabella del processo nella macchina virtuale contiene molte voci in cui il processo è stato completato, ma è elencato con "Stato terminato".

Nota

Se è necessario riavviare un nodo di lavoro o un nodo zookeeper nel cluster HBase o Kafka, prestare attenzione perché può causare problemi di stabilità per un certo periodo di tempo a seconda del ridimensionamento del cluster e della pressione del carico di lavoro. Il riavvio del nodo di lavoro può causare spostamenti di partizioni di argomenti o aree non necessarie.  Anche il riavvio del nodo ZooKeeper può causare un'instabilità nel cluster ZooKeper e quindi può causare l'arresto del broker Kafka/Server dell'area. 
Idealmente, quando possibile, arrestare il servizio HBase/Kafka prima del riavvio per ridurre al minimo l'impatto per i nuovi dati scritti nel cluster.

Usare PowerShell per riavviare le macchine virtuali

Per usare l'operazione di riavvio del nodo sono necessari due passaggi: elencare i nodi e riavviare i nodi.

  1. Elencare i nodi. È possibile ottenere l'elenco dei nodi del cluster in Get-AzHDInsightHost.

    Get-AzHDInsightHost -ClusterName myclustername
    
  2. Riavviare gli host. Dopo aver visualizzato i nomi dei nodi da riavviare, riavviare i nodi usando Restart-AzHDInsightHost.

    Restart-AzHDInsightHost -ClusterName myclustername -Name wn0-myclus, wn1-myclus
    

Nota

Il riavvio dei nodi per i tipi di cluster HBase e Kafka con PowerShell non è supportato.

Usare un'API REST per riavviare le macchine virtuali

È possibile usare la funzionalità Prova nel documento dell'API per inviare richieste a HDInsight. Per usare l'operazione di riavvio del nodo sono necessari due passaggi: elencare i nodi e riavviare i nodi.

  1. Elencare i nodi. È possibile ottenere l'elenco dei nodi del cluster dall'API REST o in Ambari. Per altre informazioni, vedere l'articolo relativo all'operazione dell'API REST degli host dell'elenco HDInsight.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/listHosts?api-version=2018-06-01-preview
    
  2. Riavviare gli host. Dopo aver visualizzato i nomi dei nodi da riavviare, riavviare i nodi usando l'API REST per riavviare i nodi. Il nome del nodo segue il modello NodeType(wn/hn/zk/gw/ib) + x + primi sei caratteri del nome del cluster. Per altre informazioni, vedere Operazione api REST per il riavvio di HDInsight.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/restartHosts?api-version=2018-06-01-preview
    

I nomi effettivi dei nodi da riavviare vengono specificati in una matrice JSON nel corpo della richiesta.

[
  "wn0-abcdef",
  "zk1-abcdef"
]

Nota

Il riavvio dei nodi per i tipi di cluster HBase e Kafka tramite l'API REST non è supportato.

Passaggi successivi