HDInsight クラスターの VM を再起動する
Azure HDInsight クラスターには、クラスター ノードとして仮想マシン (VM) のグループが含まれています。 実行時間の長いクラスターでは、さまざまな理由でこれらのノードが応答しなくなることがあります。 この記事では、HDInsight クラスター内の応答していない VM を再起動する方法について説明します。
再起動するタイミング
警告
クラスターで VM を再起動すると、ノードは使用できなくなり、ノード上のサービスは再起動する必要があります。
ノードの再起動中はクラスターが異常な状態になる場合があり、ジョブの速度が低下したり、ジョブが失敗したりする可能性があります。 アクティブなヘッド ノードを再起動しようとすると、実行中のすべてのジョブが停止します。 サービスが再起動されて実行中となるまで、クラスターにジョブを送信することはできません。 これらの理由から、必要な場合にのみ VM を再起動する必要があります。 次の場合に、VM の再起動を検討してください。
- SSH を使用してノードにアクセスできないが、ping には応答する。
- ワーカー ノードが停止していて、Ambari UI にハートビートが表示されない。
- ノードの一時ディスクが満杯である。
- VM 上のプロセス テーブルには、プロセスが完了しているエントリが多数あるが、"終了状態" と示されている。
注意
HBase または Kafka クラスターでワーカー ノードまたは zookeeper ノードを再起動する必要がある場合は、クラスターのサイズ設定とワークロードの負荷によっては、しばらくの間安定性の問題が発生する可能性があるため、注意してください。 ワーカー ノードを再起動すると、リージョンやトピック パーティションの不要な移動が発生する可能性があります。 ZooKeeper ノードの再起動でも ZooKeper クラスターが不安定になる可能性があるため、Region Server/Kafka ブローカーがダウンする可能性があります。
クラスターに書き込まれた新しいデータへの影響を最小限に抑えるために、可能な限り、再起動の前に HBase/Kafka サービスを停止するのが理想的です。
PowerShell を使用して VM を再起動する
ノードの再起動操作を使用するには、ノードの一覧表示とノードの再起動という 2 つの手順が必要です。
ノードを一覧表示します。 クラスター ノードの一覧を取得するには、Get-AzHDInsightHost を使用します。
Get-AzHDInsightHost -ClusterName myclustername
ホストを再起動します。 再起動するノードの名前を取得したら、Restart-AzHDInsightHost を使用してノードを再起動します。
Restart-AzHDInsightHost -ClusterName myclustername -Name wn0-myclus, wn1-myclus
Note
PowerShell を使用した HBase および Kafka クラスター型のノードの再起動はサポートされていません。
REST API を使用して VM を再起動する
API ドキュメントの使ってみる機能を使用して、HDInsight に要求を送信できます。 ノードの再起動操作を使用するには、ノードの一覧表示とノードの再起動という 2 つの手順が必要です。
ノードを一覧表示します。 クラスター ノードの一覧は、REST API または Ambari から取得できます。 詳細については、HDInsight list hosts 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/id) + x + クラスター名の最初の 6 文字のパターンに従います。 詳細については、HDInsight restart hosts 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"
]
Note
REST API を使用した HBase および Kafka クラスター型のノードの再起動はサポートされていません。