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