REST API

Coordinator

Coordinator 上的 API 主要用于作业管理、配置管理以及集群管理。

分布式加载

列出所有加载作业

方法: GET

路径: /api/v1/load

参数:

响应:

  • 200 - OK: 操作成功

    {
      "results": [
        {...}
      ]
    }

    了解更多作业信息,请参阅“获取加载作业进度” 。

  • 500 - Internal Server Error: 意外错误

    {
      "status": "string"
    }

获取加载作业进度

方法: GET

路径: /api/v1/load

参数:

名称

描述

id

由 POST 请求返回的作业 id

响应:

  • 200 - OK: 操作成功(空值将被省略)

  • 404 - Not Found: 未找到作业

  • 500 - Internal Server Error: 意外错误

提交或恢复加载作业

方法: POST

路径: /api/v1/load

参数:

请求体 : Content-Type: application/json

最多只需提供一个参数。

名称

描述

paths

要加载的 UFS 路径列表

index

UFS 上索引文件的路径(必须已挂载)

可以使用 options JSON 来配置加载作业的选项。所有选项均为可选项。可配置项包括:

名称

描述

batchSize

Worker 从 UFS 加载数据时使用的批处理大小

fileFilterRegex

筛选要加载文件的正则表达式

replicas

要加载的副本数量,默认值为 1。如果启用了多副本功能,可以通过此参数指定所需的副本数。

skipIfExists

如果文件已存在,则跳过加载过程

loadPolicy

当前仅支持IF_CHANGED,如果文件发生变更,则更新文件

JSON 请求负载示例如下:

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 409 - Conflict: 使用相同路径恢复加载作业,并返回之前的作业 id

  • 500 - Internal Server Error: 意外错误

停止加载作业

方法: DELETE

路径: /api/v1/load

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 410 - Gone: 该作业不存在或已完成

  • 500 - Internal Server Error: 意外错误

清理缓存(Free Cache)

列出所有清理缓存的作业

方法: GET

路径: /api/v1/free

参数:

响应:

  • 200 - OK: 操作成功

    有关作业的更多信息,请参阅 “获取清理缓存作业进度”。

  • 500 - Internal Server Error: 意外错误

获取清理缓存作业进度

方法: GET

路径: /api/v1/free

参数:

名称

描述

id

由 POST 请求返回的作业 id

响应:

  • 200 - OK: 操作成功 (空值将被省略)

  • 404 - Not Found: 未找到作业

  • 500 - Internal Server Error:意外错误

提交或恢复清理缓存作业

方法: POST

路径: /api/v1/free

参数:

请求体: Content-Type: application/json

最多只需提供一个参数。

名称

描述

paths

要加载的 UFS 路径列表

index

UFS 上索引文件的路径(必须已挂载)

JSON 请求负载示例如下:

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 409 - Conflict: 使用相同路径恢复清理缓存作业,并返回之前的作业 id

  • 500 - Internal Server Error: 意外错误

停止清理缓存作业

方法: DELETE

路径: /api/v1/free

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 410 - Gone: 该作业不存在或已完成

  • 500 - Internal Server Error: 意外错误

重平衡(Rebalance)

列出所有重平衡作业

方法: GET

路径: /api/v1/rebalance

参数:

响应:

  • 200 - OK: 操作成功

    有关作业的更多信息,请参阅“获取重平衡作业进度”。

  • 500 - Internal Server Error: 意外错误

获取重平衡作业进度

方法: GET

路径: /api/v1/rebalance

参数:

最多只需提供一个参数。

名称

描述

id

由 POST 请求返回的作业 id

target

重平衡作业的目标 Worker,可以是指定的 worker id(例如:worker-54b88939-de49-46ef-acab-fe489f46d1a0)或者ALL(表示所有 Worker)

响应:

  • 200 - OK: 操作成功 (空值将被省略)

  • 404 - Not Found: 未找到作业

  • 500 - Internal Server Error: 意外错误

提交或恢复重平衡作业

方法: POST

路径: /api/v1/rebalance

参数:

请求体: Content-Type: application/json

必填字段

名称

描述

target

重平衡作业的目标 Worker,可以是指定的 worker id(例如:worker-54b88939-de49-46ef-acab-fe489f46d1a0)或者ALL(表示所有 Worker)。

可以使用 options JSON 来配置加载作业的选项。所有选项均为可选项。可配置项包括:

名称

描述

loadBatchSize

加载阶段的批处理大小,与加载作业中的 batchSize 选项相同

loadBandwidth

每个 Worker 每秒的加载带宽(单位:字节),例如:10485746000...

pruneBandwidth

每个 Worker 每秒的清理(prune)带宽(单位:字节),例如:10485746000...

skipPrune

是否仅执行数据加载,跳过清理不属于该 Worker(s) 的数据

JSON 请求负载示例如下:

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 409 - Conflict: 使用相同路径恢复清理缓存作业,并返回之前的作业 id

  • 500 - Internal Server Error: 意外错误

停止重平衡作业

方法: DELETE

路径: /api/v1/rebalance

参数:

请求体: Content-Type: application/json

最多只需提供一个参数。

名称

描述

id

由 POST 请求返回的作业 id

target

重平衡作业的目标 Worker,可以是指定的 worker id(例如:worker-54b88939-de49-46ef-acab-fe489f46d1a0)或者ALL(表示所有 Worker)。

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 410 - Gone: 该作业不存在或已完成

  • 500 - Internal Server Error: 意外错误

清理过期缓存(Clear Stale Cache)

该操作与清理缓存(Free Cache)操作有所不同:

  • Free Cache 需要输入文件或目录列表,指定需要从 Worker 节点释放(清理)的缓存内容。Clear Stale Cache 不需要输入参数,系统会自动扫描 Worker 缓存存储,并结合当前的一致性哈希环判断哪些缓存是“过期”的。

  • Free Cache 需要正确设置副本数,否则在启用文件副本功能时,可能会释放少于预期的副本数量。Clear Stale Cache 操作会向集群中所有 Worker 广播命令,无论副本数量多少,都会触发所有 Worker 上过期缓存的清理。

开始清理过期缓存

方法: POST

路径: /api/v1/cache

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 空的 errors 对象表示该操作已成功提交给所有 Worker 执行。

  • 200 - OK: 非空的 errors 对象表示该操作未能成功提交给至少一个 Worker 执行

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 500 - Internal Server Error: 意外错误

  • 501 - Not Implemented: 指定的操作类型尚未实现

停止清理过期缓存

方法: DELETE

路径: /api/v1/cache

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 空的 errors 对象表示所有 Worker 均已成功接收到停止清理过期缓存的通知

  • 200 - OK: 非空的 errors 对象表示coordinator未能成功通知至少一个 Worker 停止清理过期缓存

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 500 - Internal Server Error: 意外错误

  • 501 - Not Implemented: 指定的操作类型尚未实现

挂载表

列出挂载点

方法: GET

路径: /api/v1/mount

参数:

响应:

  • 200 - OK: 操作成功(空选项将被省略)

  • 500 - Internal Server Error: 意外错误

获取挂载点信息

方法: GET

路径: /api/v1/mount

参数:

名称

描述

path

挂载点对应的 Alluxio 路径

响应:

  • 200 - OK: 操作成功(空选项将被省略)

  • 404 - Not Found: 未找到挂载点

  • 500 - Internal Server Error: 意外错误

创建挂载点

方法: POST

路径: /api/v1/mount

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 409 - Conflict: 该路径已被挂载,或者UFS已挂载到其他路径

  • 501 - Not Implemented: 挂载表不支持通过 API 管理(例如:静态文件挂载表)

  • 500 - Internal Server Error: 意外错误

删除挂载点

方法: DELETE

路径: /api/v1/mount

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 410 - Gone: 该路径未挂载到任何UFS

  • 501 - Not Implemented: 挂载表不支持通过 API 管理(例如:静态文件挂载表)

  • 500 - Internal Server Error: 意外错误

配额

列出所有配额状态

方法: GET

路径: /api/v1/quota

参数:

响应:

  • 200 - OK: 操作成功

  • 501 - Not Implemented: 配额功能未启用

  • 500 - Internal Server Error: 意外错误

获取配额状态

方法: GET

路径: /api/v1/quota

参数:

名称

描述

path

数据对应的 Alluxio 路径

响应:

  • 200 - OK: 操作成功

  • 404 - Not Found: 未找到配额

  • 501 - Not Implemented: 配额功能未启用

  • 500 - Internal Server Error: 意外错误

添加或更新配额

方法: POST

路径: /api/v1/quota

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 400 - Bad Request: 该路径未指向已挂载的UFS,但必须绑定到现有的 UFS上

  • 501 - Not Implemented: 配额功能未启用

  • 500 - Internal Server Error: 意外错误

删除配额

方法: DELETE

路径: /api/v1/quota

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 400 - Bad Request: 未找到配额或发生其他问题

  • 501 - Not Implemented: 配额功能未启用

  • 500 - Internal Server Error: 意外错误

TTL

列出所有 TTL 策略

方法: GET

路径: /api/v1/ttl

参数:

响应:

  • 200 - OK: 操作成功

  • 501 - Not Implemented: TTL 策略未启用

  • 500 - Internal Server Error: 意外错误

获取 TTL 策略

方法: GET

路径: /api/v1/ttl

参数:

名称

描述

path

数据对应的 Alluxio 路径

响应:

  • 200 - OK: 操作成功

  • 404 - Not Found: 未找到 TTL 策略

  • 501 - Not Implemented: TTL 策略未启用

  • 500 - Internal Server Error: 意外错误

添加或更新 TTL 策略

方法: POST

路径: /api/v1/ttl

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 400 - Bad Request: 该路径未指向已挂载的UFS,但必须绑定到现有的 UFS上

  • 501 - Not Implemented: TTL 策略未启用

  • 500 - Internal Server Error: 意外错误

删除 TTL 策略

方法: DELETE

路径: /api/v1/ttl

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 400 - Bad Request: 未找到 TTL 策略

  • 501 - Not Implemented: TTL 策略未启用

  • 500 - Internal Server Error: 意外错误

优先级驱逐

列出所有优先级驱逐策略

方法: GET

路径: /api/v1/priority

参数:

响应:

  • 200 - OK: 操作成功

  • 501 - Not Implemented: 优先级驱逐功能未启用

  • 500 - Internal Server Error: 意外错误

获取优先级驱逐策略

方法: GET

路径: /api/v1/priority

参数:

名称

描述

path

数据对应的 Alluxio 路径

响应:

  • 200 - OK: 操作成功

  • 404 - Not Found: 未找到优先级驱逐策略

  • 501 - Not Implemented: 优先级驱逐功能未启用

  • 500 - Internal Server Error: 意外错误

添加或更新优先级驱逐策略

方法: POST

路径: /api/v1/priority

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 400 - Bad Request: 优先级字符串格式错误或存在其他问题

  • 501 - Not Implemented: 优先级驱逐功能未启用

  • 500 - Internal Server Error: 意外错误

删除优先级驱逐策略

方法: DELETE

路径: /api/v1/priority

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功

  • 400 - Bad Request: 请求中没有包含请求体或缺少必填字段

  • 501 - Not Implemented: 优先级驱逐功能未启用

  • 500 - Internal Server Error: 意外错误

节点管理

列出所有节点

方法:GET

路径: /api/v1/nodes

参数:

响应:

  • 200 - OK: 操作成功

  • 500 - Internal Server Error: 意外错误

查询节点信息

方法: GET

路径: /api/v1/nodes

参数:

名称

描述

id

worker id (例如 worker-587899dd-5da5-45d4-af40-ce481acc4087)

响应:

  • 200 - OK: 操作成功 (空值将被省略)

  • 404 - Not Found: 未找到 worker 节点

  • 500 - Internal Server Error: 意外错误

注销节点 (从 etcd 中删除节点)

方法: DELETE

路径: /api/v1/nodes

参数:

名称

描述

id

worker id (例如 worker-587899dd-5da5-45d4-af40-ce481acc4087)

响应:

  • 200 - OK: 操作成功

  • 404 - Not Found: 未找到 worker 节点

  • 500 - Internal Server Error: 意外错误

全局文件索引

列出所有节点

方法: GET

路径: /api/v1/file_index

参数:

响应:

  • 200 - OK: 操作成功

  • 500 - Internal Server Error: 意外错误

将文件添加到全局索引

方法: POST

路径: /api/v1/file_index

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功 (添加到索引的条目数)

  • 404 - Not Found: 功能未启用

  • 500 - Internal Server Error: 意外错误

将文件从全局文件索引中移除

方法: DELETE

路径: /api/v1/file_index

参数:

请求体: Content-Type: application/json

响应:

  • 200 - OK: 操作成功 (从索引中移除的条目数)

  • 404 - Not Found: 功能未启用

  • 500 - Internal Server Error: 意外错误

Last updated