Azure HDInsight クラスターには、クラスター ノードとして仮想マシン (VM) のグループが含まれています。 実行時間の長いクラスターでは、さまざまな理由でこれらのノードが応答しなくなる可能性があります。 この記事では、HDInsight クラスターで応答しない VM を再起動する方法について説明します。
再起動するタイミング
警告
クラスター内の VM を再起動すると、ノードは使用できず、ノード上のサービスを再起動する必要があります。
ノードが再起動すると、クラスターが異常になり、ジョブの速度が低下したり失敗したりする可能性があります。 アクティブなヘッド ノードを再起動しようとすると、実行中のすべてのジョブが停止します。 サービスが再び稼働するまで、クラスターにジョブを送信することはできません。 これらの理由から、必要な場合にのみ VM を再起動する必要があります。 次の場合は、VM の再起動を検討してください。
- SSH を使用してノードに入ることはできませんが、ping に応答します。
- Ambari UI でワーカーノードがハートビートを検出できずに停止しています。
- ノードの一時ディスクがいっぱいです。
- VM 上のプロセス テーブルには、プロセスが完了したエントリが多数ありますが、"終了状態" と表示されます。
注
HBase または Kafka クラスターでワーカー ノードまたは zookeeper ノードを再起動する必要がある場合は、クラスターのサイズ設定とワークロードの負荷によっては、しばらくの間安定性の問題が発生する可能性があるため、注意してください。 ワーカー ノードを再起動すると、不要なリージョン/トピック パーティションの移動が発生する可能性があります。 ZooKeeper ノードの再起動であっても、ZooKeper クラスターが不安定になる可能性があるため、リージョン サーバー/Kafka ブローカーがダウンする可能性があります。
可能な限り、再起動の前に HBase/Kafka サービスを停止して、クラスターに書き込まれる新しいデータへの影響を最小限に抑えるのが理想的です。
PowerShell を使用して VM を再起動する
ノードの再起動操作を使用するには、ノードの一覧表示とノードの再起動という 2 つの手順が必要です。
ノードを一覧表示します。 クラスター ノードの一覧は Get-AzHDInsightHost で取得できます。
Get-AzHDInsightHost -ClusterName myclusternameホストを再起動します。 再起動するノードの名前を取得したら、 Restart-AzHDInsightHost を使用してノードを再起動します。
Restart-AzHDInsightHost -ClusterName myclustername -Name wn0-myclus, wn1-myclus
注
PowerShell を使用した HBase および Kafka クラスターの種類のノードの再起動はサポートされていません。
REST API を使用して VM を再起動する
API ドキュメントの 「試してみる 」機能を使用して、HDInsight に要求を送信できます。 ノードの再起動操作を使用するには、ノードの一覧表示とノードの再起動という 2 つの手順が必要です。
ノードを一覧表示します。 クラスター ノードの一覧は、REST API または Ambari から取得できます。 詳細については、 HDInsight リスト ホスト REST API 操作に関する記事を参照してください。
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/listHosts?api-version=2018-06-01-previewホストを再起動します。 再起動するノードの名前を取得したら、REST API を使用してノードを再起動します。 ノード名は、 NodeType(wn/hn/zk/gw/ib) + x + 最初の 6 文字のクラスター名のパターンに従います。 詳細については、 HDInsight 再起動ホスト REST API 操作に関する記事を参照してください。
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"
]
注
REST API を使用した HBase および Kafka クラスターの種類のノードの再起動はサポートされていません。