cs
快速入门
更新时间:2019/10/18 GMT+08:00
本节通过调用一系列API,以集群管理为例,介绍使用CS API的基本流程。集群管理的流程如下:
- 调用Token认证获取用户的token,因为在后续的请求中需要将token放到请求消息头中作为认证,详情请参见认证鉴权。
- 调用新建SQL作业接口,通过POST方式,提交流式SQL作业,详情请参见新建SQL作业。
- 调用运行作业接口,详情请参见运行作业。
- 调用查询作业列表接口,获取作业信息,详情请参见查询作业列表。
- 调用停止作业接口,详情请参见停止作业。
集群管理
假设已获取前提条件中的信息为如下值(实际操作中您需要根据实际情况替换):
- IAM的Endpoint:下面示例中以iam_endpoint代替。
- CS的Endpoint:下面示例中以cs_endpoint代替。
- 项目编号:9bc552e6-19af-4326-800d-281a92984636
则可以通过如下步骤管理集群。
- 调用其他接口前,首先需要获取token认证,并设置成环境变量。
curl -H "Content-Type:application/json" https://{iam_endpoint}/v3/auth/tokens -X POST -d '{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "testname", "domain": { "name": "testname" }, "password": "Passw0rd" } } }, "scope": { "project": { "name": "cn-north-1" } } } }' -v -k
- 获取响应Header中“X-Subject-Token”的值即为“Token”,示例如下。
X-Subject-Token:MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...
- 使用如下命令将token设置为环境变量。
export Token={X-Subject-Token}
“X-Subject-Token”即为上一步骤获取到的token,示例如下。
export X-Auth-Token=MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...
- 获取响应Header中“X-Subject-Token”的值即为“Token”,示例如下。
- 调用新建SQL作业接口。
curl -X POST -H 'Content-Type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" -d ' { "name": "my job", "desc": "这是个做字符记数的作业", "sql_body": "select * from source_table", "run_mode": "shared_cluster", "spu_number": 1, "parallel_number": 1, "checkpoint_enabled": false, "checkpoint_mode": "exactly_once", "checkpoint_interval": 0, "log_enabled": false }' https://{cs_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/sql_job -v -k
获取响应如下所示。
STATUS CODE 200 { "message_id": "CS.12000", "message": "创建Stream 作业成功", "payload": { "job_id": 50320, "status_name": "job_init", "status_desc": "" }, "current_time": 1533686888000 }
- 调用运行作业接口。
curl -X POST -H 'Content-Type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" -d '[50320] ' https://{cs_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/job/run -v -k
获取响应如下所示。
STATUS CODE 200 { "message_id": "CS.12000", "message": "创建Stream作业成功", "payload": { "job_id": 50320, "status_name": "job_init", "status_desc": "" }, "current_time": 1533686888000 }
- 调用查询作业列表接口,获取作业信息。
curl -X GET -H 'Content-Type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" https://{cs_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/jobs -k –v
获取响应如下所示:
{ "message_id": "CS.23000", "message": "作业列表查询成功", "payload": { "total": 1, "jobs": [ { "job_id": 50320, "user_id": "ac4eaa303639409c8ab099d55eb1538e", "cluster_id": 100000, "project_id": "5a3314075bfa49b9ae360f4ecd333695", "name": "my job", "desc": "这是个做字符记数的作业", "sql_body": "", "run_mode": "shared_cluster", "job_type": "flink_jar_job", "spu_number": 1, "parallel_number": 1, "job_config": { "checkpoint_enabled": false, "checkpoint_interval": 10, "checkpoint_mode": "exactly_once", "log_enabled": false }, "status": "job_running", "status_desc": "", "create_time": 1516952710040, "update_time": 1516952770835 } ] }, "current_time": 1533686888000 }
status的状态如果为“job_submitting”,则表示作业正处于提交中;若为“job_running”则表示作业运行中。
- 调用停止作业接口。
curl -X POST -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -d '[50320]' https://{cs_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/job/stop -k -v
获取响应如下所示:
[ { "message_id": "CS.16000", "message": "Stream 作业停止成功", "current_time": 1533686888000 } ]
