Поделиться через


Перезагрузка виртуальных машин в кластерах HDInsight

Группы виртуальных машин входят в кластеры Azure HDInsight в виде узлов. В течение длительной работы кластеров эти узлы могут перестать отвечать по разным причинам. В статье объясняется, как перезагрузить в кластере HDInsight виртуальные машины, которые не отвечают.

Когда требуется перезагрузка?

Предупреждение

При перезагрузке виртуальных машин в кластере узел становится недоступен для использования, а службы на узле необходимо перезапустить.

Перезагрузка узла может привести к неработоспособности кластера, а также к замедлению или сбою заданий. При попытке перезагрузить активный головной узел все выполняющиеся задания останавливаются. Вы не сможете отправлять задания в кластер, пока службы снова не запустятся. Поэтому не стоит перезагружать виртуальные машины без особой необходимости. Перезагрузка виртуальных машин может иметь смысл в следующих ситуациях:

  • вам не удается использовать SSH для доступа к узлу, но он отвечает на запросы проверки связи;
  • в пользовательском интерфейсе Ambari рабочий узел отключен, от не поступают пакеты пульса;
  • временный диск на узле заполнен;
  • таблица процессов на виртуальной машине содержит много записей, в которых процесс завершен, но имеет состояние "Прервано".

Примечание

Если необходимо перезагрузить рабочий узел или узел ZooKeeper в кластере HBase или Kafka, будьте осторожны, так как это может нарушить стабильность в течение некоторого времени в зависимости от размера кластера и объема рабочей нагрузки. Перезагрузка рабочего узла может привести к ненужным перемещениям секций в регионе или разделе.  Даже перезагрузка узла ZooKeeper может привести к нестабильности в кластере ZooKeper, поэтому может привести к отключению сервера региона или брокера Kafka. 
В идеале, когда это возможно, остановите службу HBase или Kafka перед перезагрузкой, чтобы свести к минимуму влияние на новые данные, записанные в кластере.

Использование PowerShell для перезагрузки виртуальных машин

Операция перезагрузки узлов состоит из двух этапов: получения списка узлов и их перезапуска.

  1. Получение списка узлов. Для получения списка узлов используйте командлет Get-AzHDInsightHost.

    Get-AzHDInsightHost -ClusterName myclustername
    
  2. Перезапуск узлов. Получив имена узлов, которые нужно перезагрузить, используйте командлет Restart-AzHDInsightHost для их перезапуска.

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

Примечание

Перезагрузка узлов для типов кластеров HBase и Kafka с помощью PowerShell не поддерживается.

Использование REST API для перезагрузки виртуальных машин

Вы можете отправить запросы в HDInsight с помощью функции Попробовать в документации по API. Операция перезагрузки узлов состоит из двух этапов: получения списка узлов и их перезапуска.

  1. Получение списка узлов. Список узлов кластера можно получить в REST API или в интерфейсе Ambari. См. операцию REST API для получения списка узлов HDInsight.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/listHosts?api-version=2018-06-01-preview
    
  2. Перезапуск узлов. Получив имена узлов, которые нужно перезагрузить, используйте REST API для их перезапуска. Имя узла формируется по следующему шаблону: NodeType(wn/hn/zk/gw/ib) + x + первые шесть символов имени кластера. См. операцию REST API для перезапуска узлов HDInsight.

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

Реальные имена узлов, которые вы хотите перезагрузить, указываются в массиве JSON в тексте запроса.

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

Примечание

Перезагрузка узлов для типов кластеров HBase и Kafka с помощью REST API не поддерживается.

Дальнейшие действия