0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudera Manager の API で、HMSだけを再起動する

0
Last updated at Posted at 2026-06-08

事前準備

まずAPIのバージョンを確認しましょう。
Cloudera Manager のトップ画面から、以下を開きます。

スクリーンショット 2026-06-08 12.14.39.png

すると、以下のような表示が出ます。
以下の場合、バージョンは「v58」です。

スクリーンショット 2026-06-08 12.17.46.png

手順

HMSのサービス名を確認する

まずはHMSのサービス名を確認します。
このサービス名が、実際に再起動をかけるコマンドで必要になるためです。

コマンド

コマンドの文法
curl -u {CMの管理者ユーザー名}:{CMの管理者パスワード} \
'http://{CMのホスト名}:{ポート}/api/{バージョン名}/clusters/{クラスタ名}/services/hive/roles/'

{}は可変項目です。可変項目の説明は以下のとおりです。

項目名 説明
CMの管理者ユーザー名 Cloudera Manager にログインする際の管理者のユーザー名です admin
CMの管理者パスワード Cloudera Manager にログインする際の管理者のパスワードです admin
CMのホスト名 Cloudera Manager のホスト名またはIPアドレスです 10.0.0.1
ポート Cloudera Manager のポートです 特別に設定していない限り、7180(http)または7183(https)のはずです
バージョン名 上記の手順で確認したバージョン v58
クラスタ名 Cloudera Manager 上で管理しているクラスタ名です。
スペースは %20 に置き換えます
Cluster 1 というクラスタ名なら、Cluster%201

可変項目が上記の例のとおりだとすると、コマンドは以下のようになります。

コマンドの例
curl -u admin:admin \
'http://10.0.0.1:7180/api/v58/clusters/Cluster%201/services/hive/roles/'

結果の確認

以下のような結果が返ってきます。

{
  "items" : [ {
    "healthChecks" : [ ],
    "maintenanceOwners" : [ ],
    "name" : "hive-HIVEMETASTORE-2b4ad9fd04defda70268767c5b575665",
    "type" : "HIVEMETASTORE",
    "serviceRef" : {
      "clusterName" : "Cluster 1",
      "serviceName" : "hive",
      "serviceDisplayName" : "Hive",
      "serviceType" : "HIVE"
    },

<中略>
  
    "roleState" : "STARTED",
    "healthSummary" : "GOOD",

<中略>

    "entityStatus" : "GOOD_HEALTH",
    "tags" : [ ]
  },

上記の name を、次のコマンドの HMS のサービス名として指定します。

healthSummary が BAD になっていたり、Entity Status が BAD_HEALTH になっているなどの条件で、ヘルス状態を見分けることができます。

HMSを再起動する

HMSのサービス名がわかったところで、次はこのサービスを実際に再起動します。

コマンド

文法
curl -i -v -X POST -u {CMの管理者ユーザー名}:{CMの管理者パスワード} \
'http://{CMのホスト名}:{ポート}/api/{バージョン名}/clusters/{クラスタ名}/services/hive/roles/{HMSのサービス名}/commands/restart'

curl -i -X POST \
-u {CMの管理者ユーザー名}:{CMの管理者パスワード} \
-H "Content-Type: application/json" \
-d '{"items": ["{HMSのサービス名}"]}' \
'http://{CMのホスト名}:{ポート}/api/{バージョン名}/clusters/{クラスタ名}/services/hive/roleCommands/restart'

上記の {HMSのサービス名} には、先の手順で確認したサービス名を入れます。

コマンドの例
curl -i -X POST \
-u admin:admin \
-H "Content-Type: application/json" \
-d '{"items": ["hive-HIVEMETASTORE-2b4ad9fd04defda70268767c5b575665"]}' \
'http://10.0.0.1:7180/api/v58/clusters/Cluster%201/services/hive/roleCommands/restart'

結果の確認

正常にAPIが投げられれば、以下のような結果が返ってきます。

HTTP/1.1 200 OK
Date: Mon, 08 Jun 2026 03:42:03 GMT

<中略>

{
  "errors" : [ ],
  "items" : [ {
    "id" : 1546338026,
    "name" : "Restart",
    "startTime" : "2026-06-08T03:42:03.880Z",
    "active" : true,
    "serviceRef" : {
      "clusterName" : "Cluster 1",
      "serviceName" : "hive",
      "serviceDisplayName" : "Hive",
      "serviceType" : "HIVE"
    },
    "roleRef" : {
      "clusterName" : "Cluster 1",
      "serviceName" : "hive",
      "roleName" : "hive-HIVEMETASTORE-2b4ad9fd04defda70268767c5b575665"
    }
  } ]
}

上記はあくまでも、リクエストが正常に受け付けられたことを示すレスポンスです。
実際に処理が無事に完了したかどうかを確認するために、上記の "id" を使ってコマンドを投げます。

処理結果を確認する

処理の結果は、以下のコマンドで確認できます。

コマンド

文法
curl -u {CMの管理者ユーザー名}:{CMの管理者パスワード} \
'http://{CMのホスト名}:{ポート}/api/{バージョン名}/commands/{id}'

先ほどの手順で確認した id1546338026 なら、以下のようなコマンドになります。

コマンドの例
curl -u admin:admin \
'http://10.0.0.1:7180/api/v58/commands/1546338026'

結果の確認

以下のようなレスポンスが返ってくればOKです。

{
  "id" : 1546338026,
  "name" : "Restart",
  "startTime" : "2026-06-08T03:42:03.880Z",
  "endTime" : "2026-06-08T03:42:26.971Z",
  "active" : false,
  "success" : true,
  "resultMessage" : "ロールを正常に再起動しました",
  "serviceRef" : {
    "clusterName" : "Cluster 1",
    "serviceName" : "hive",
    "serviceDisplayName" : "Hive",
    "serviceType" : "HIVE"
  },
  "roleRef" : {
    "clusterName" : "Cluster 1",
    "serviceName" : "hive",
    "roleName" : "hive-HIVEMETASTORE-2b4ad9fd04defda70268767c5b575665"
  },
  "children" : {
    "items" : [ {
      "id" : 1546338027,
      "name" : "Stop",
      "startTime" : "2026-06-08T03:42:03.880Z",
      "endTime" : "2026-06-08T03:42:04.510Z",
      "active" : false,
      "success" : true,
      "resultMessage" : "プロセスが正常に停止されました。",
      "serviceRef" : {
        "clusterName" : "Cluster 1",
        "serviceName" : "hive",
        "serviceDisplayName" : "Hive",
        "serviceType" : "HIVE"
      },
      "roleRef" : {
        "clusterName" : "Cluster 1",
        "serviceName" : "hive",
        "roleName" : "hive-HIVEMETASTORE-2b4ad9fd04defda70268767c5b575665"
      }
    }, {
      "id" : 1546338029,
      "name" : "Start",
      "startTime" : "2026-06-08T03:42:04.581Z",
      "endTime" : "2026-06-08T03:42:26.970Z",
      "active" : false,
      "success" : true,
      "resultMessage" : "プロセスは正常に開始されました。",
      "serviceRef" : {
        "clusterName" : "Cluster 1",
        "serviceName" : "hive",
        "serviceDisplayName" : "Hive",
        "serviceType" : "HIVE"
      },
      "roleRef" : {
        "clusterName" : "Cluster 1",
        "serviceName" : "hive",
        "roleName" : "hive-HIVEMETASTORE-2b4ad9fd04defda70268767c5b575665"
      }
    } ]
  },
  "canRetry" : false
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?