Partilhar via


Reiniciar VMs para clusters do HDInsight

Os clusters do Azure HDInsight contêm grupos de máquinas virtuais (VMs) como nós de cluster. Para clusters de execução prolongada, estes nós podem deixar de responder por vários motivos. Este artigo descreve como reiniciar VMs sem resposta num cluster do HDInsight.

Quando reiniciar

Aviso

Quando reinicia VMs num cluster, o nó não está disponível para utilização e os serviços no nó têm de ser reiniciados.

Quando um nó está a reiniciar, o cluster pode ficar em mau estado de funcionamento e as tarefas podem abrandar ou falhar. Se estiver a tentar reiniciar o nó principal ativo, todas as tarefas em execução serão paradas. Não poderá submeter tarefas para o cluster até que os serviços estejam a funcionar novamente. Por estes motivos, deve reiniciar as VMs apenas quando necessário. Considere reiniciar VMs quando:

  • Não pode utilizar o SSH para entrar no nó, mas este responde a pings.
  • O nó de trabalho está inativo sem heartbeat na IU do Ambari.
  • O disco temporário está cheio no nó.
  • A tabela de processos na VM tem muitas entradas onde o processo foi concluído, mas está listada com "Estado terminado".

Nota

Se tiver de reiniciar um nó de trabalho ou nó zookeeper no HBase ou no cluster do Kafka, tenha cuidado, pois pode causar problemas de estabilidade durante algum tempo, dependendo do dimensionamento do cluster e da pressão da carga de trabalho. Reiniciar o nó de trabalho pode causar movimentos de partição de região/tópico desnecessários.  Mesmo o reinício do nó ZooKeeper pode causar instabilidade no cluster zooKeper, pelo que pode fazer com que o mediador Region Server/Kafka fique inativo. 
Idealmente, sempre que possível, pare o serviço HBase/Kafka antes do reinício para minimizar o impacto dos novos dados escritos no cluster.

Utilizar o PowerShell para reiniciar VMs

São necessários dois passos para utilizar a operação de reinício do nó: nós de lista e nós de reinício.

  1. Liste os nós. Pode obter a lista de nós de cluster em Get-AzHDInsightHost.

    Get-AzHDInsightHost -ClusterName myclustername
    
  2. Reinicie os anfitriões. Depois de obter os nomes dos nós que pretende reiniciar, reinicie os nós com Restart-AzHDInsightHost.

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

Nota

O reinício dos nós para tipos de cluster do HBase e do Kafka com o PowerShell não é suportado.

Utilizar uma API REST para reiniciar VMs

Pode utilizar a funcionalidade Experimentar no documento da API para enviar pedidos para o HDInsight. São necessários dois passos para utilizar a operação de reinício do nó: nós de lista e nós de reinício.

  1. Liste os nós. Pode obter a lista de nós de cluster a partir da API REST ou no Ambari. Para obter mais informações, veja API REST de anfitriões de lista do HDInsight.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/listHosts?api-version=2018-06-01-preview
    
  2. Reinicie os anfitriões. Depois de obter os nomes dos nós que pretende reiniciar, reinicie os nós com a API REST para reiniciar os nós. O nome do nó segue o padrão de NodeType(wn/hn/zk/gw/ib) + x + os primeiros seis carateres do nome do cluster. Para obter mais informações, veja API REST de reinício do HDInsight.

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

Os nomes reais dos nós que pretende reiniciar são especificados numa matriz JSON no corpo do pedido.

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

Nota

O reinício dos nós para tipos de cluster do HBase e do Kafka com a API REST não é suportado.

Passos seguintes