API 参考

HDFS 的 API 参考

DC/OS Apache HDFS 服务实施可从群集外部访问的 REST API。下面引用的<dcos_url> 参数指示了部署 Apache HDFS 服务的 DC/OS 群集的基础 URL。

REST API 身份认证

REST API 请求必须经过身份认证。此身份认证仅适用于直接与 Apache HDFS REST API 的交互。访问 Apache HDFS 节点自身不需要令牌。

如果您正在使用 Enterprise DC/OS,请遵循以下说明 创建服务帐户和身份认证令牌。然后,您可以配置服务以在其到期时自动刷新身份认证令牌。要更快速地开始,您还可以在没有服务帐户的情况下获得认证令牌,但您需要手动刷新令牌。

如果您正在使用开源 DC/OS,请遵循以下说明 将您的 HTTP API 令牌传递到 DC/OS 端点

您拥有身份认证令牌之后,您可以将其存储在环境变量中,并在您的 REST API 调用中引用:

$ export auth_token=uSeR_t0k3n

本文中的curl示例假定身份认证令牌已存储在名为auth_token的环境变量中。

如果您正在使用 Enterprise DC/OS,安全模式安装在调用 REST 时也可能需要 --ca-cert 标记。请参阅 在 cURL 请求中获取并传递 DC/OS 证书 了解如何使用 --cacert 标记。如果您的安全模式是 disabled,不要使用 --ca-cert 标记。

Plan API

Plan API 提供用于监控和控制服务安装和配置更新的端点。

列表计划

您可以列出服务的已配置计划。默认情况下,所有服务至少有一个 deploy 计划和一个 recovery 计划。某些服务可能已定义额外的自定义计划。

$ curl -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/plans
$ dcos hdfs --name=hdfs plan list

查看计划

您可以查看所列计划的当前状态:

$ curl -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/plans/<plan>

CLI 可用于显示计划的格式树(默认),或从上述 HTTP 端点检索的基础 JSON 数据:

$ dcos hdfs --name=hdfs plan show <plan>
$ dcos hdfs --name=hdfs plan show <plan> --json

暂停计划

完成当前节点的操作后,安装将暂停,并等待用户输入后再继续。

$ curl -X POST -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/plans/deploy/interrupt
$ dcos hdfs --name=hdfs plan pause deploy

恢复计划

下面的 REST API 请求将恢复下一个挂起节点的操作。

$ curl -X PUT -H "Authorization:token=$auth_token" <dcos_surl>/service/hdfs/v1/plans/deploy/continue
$ dcos hdfs --name=hdfs plan continue deploy

节点 API

pod API 提供用于检索节点信息、重新启动节点和更换节点的端点。

列表节点

可以通过发送 GET 请求到 /v1/pod来检索可用节点 ID 的列表:

CLI 示例

$ dcos hdfs --name=hdfs pod list

HTTP 示例

$ curl -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/pod

节点信息

您可以通过向 /v1/pod/<node-id>/info发送 GET 请求来检索节点信息:

$ curl  -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/pod/<node-id>/info

CLI 示例

$ dcos hdfs --name=hdfs pod info journalnode-0

HTTP 示例

$ curl  -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/pod/journalnode-0/info

替换节点

可以使用 replace endpoint 命令用其他代理节点上运行的实例来替换节点。

CLI 示例

$ dcos hdfs --name=hdfs pod replace <node-id>

HTTP 示例

$ curl -X POST -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/pod/<node-id>/replace

如果操作成功,返回200 OK

重新启动节点

可以使用 restart endpoint 命令重新启动在同一代理节点上的节点。

CLI 示例

$ dcos hdfs --name=hdfs pod restart <node-id>

HTTP 示例

$ curl -X POST -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/pod/<node-id>/restart

如果操作成功,返回 200 OK

暂停节点

可以使用 pause endpoint 命令重新启动在空闲命令状态下的节点,用于调试。

CLI 示例

dcos hdfs --name=hdfs debug pod pause <node-id>

HTTP 示例

$ curl -X POST -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/pod/<node-id>/pause

配置 API

配置 API 提供查看群集的当前和先前配置的端点。

查看目标配置

您可以通过发送 GET 请求到 /v1/configurations/target 来查看当前目标配置。

CLI 示例

$ dcos hdfs --name=hdfs config target

HTTP 示例

$ curl -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/configurations/target

列表配置

您可以通过发送 GET 请求到 /v1/configurations来列出所有配置 ID。

CLI 示例

$ dcos hdfs --name=hdfs config list
[
  "319ebe89-42e2-40e2-9169-8568e2421023",
  "294235f2-8504-4194-b43d-664443f2132b"
]

HTTP 示例

$ curl -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/configurations
[
  "319ebe89-42e2-40e2-9169-8568e2421023",
  "294235f2-8504-4194-b43d-664443f2132b"
]

查看指定的配置

您可以通过向 /v1/configurations/ 发送 GET 请求来查看指定配置<config-id>.

CLI 示例

$ dcos hdfs --name=hdfs config show 9a8d4308-ab9d-4121-b460-696ec3368ad6

HTTP 示例

$ curl -H "Authorization:token=$auth_token" <dcos_url>/service/hdfs/v1/configurations/9a8d4308-ab9d-4121-b460-696ec3368ad6