Skip to content

streaming

qifeng dai edited this page Aug 7, 2017 · 56 revisions

1.创建流任务

说明:创建一个流任务,对项目 "有写和执行权限的用户和项目所有者" 可以直接运行。

POST  /projects/:project-name/streaming/:name
Parameters: desc={desc}&type={type}&parameter={parameter}&userDefParams={userDefParams}&notifyType={notifyType}&notifyMails={notifyMails}
 
Response:
Status: 201 Created
{
  "name": "user_stat",
  "desc": "统计用户信息的流任务",
  "projectName": "bdi",
  "type": "SPARK_STREAMING",
  "parameter": {...},
  "userDefParams": [{
    "prop": "year",
    "value": "$[yyyy]"
    }
  ],
  "notifyType": "FAILURE",
  "notifyMails": ["ABC@baifendian.com"],
  "createTime": 1468391778000,
  "modifyTime": 1468391778000,
  "owner": "bdi_user"
}

请求参数说明:

参数 类型 是否必选 描述 说明
desc string 流任务的描述 长度为 [0,256]
type string 节点类型 节点类型参考:[[任务描述
parameter jsonObject 参数配置 json 的参数形式,不同任务类型的值不一样 jsonObject, 见:[[任务描述
userDefParams jsonArray 自定义参数配置 为 json 数组,关于自定义参数相关内容,详见:[[参数说明
notifyType enum 报警类型 SUCCESS-成功发,FAILURE-失败发,ALL-成功或失败都发,NONE-都不发, 注意大小写不敏感, 默认是 None
notifyMails jsonArray 报警邮箱列表 报警的邮件列表,如果 notifyType 不是 NONE,这个值是应该配置的

2.修改并创建流任务

说明:对应项目 "有修改权限的用户和项目所有者" 能够修改流任务。工作流若不存在,则会新增。

PUT  /projects/:project-name/streaming/:name
Parameters: desc={desc}&type={type}&parameter={parameter}&userDefParams={userDefParams}&notifyType={notifyType}&notifyMails={notifyMails}

Response:
Status: 200 OK

请求和返回同上。

3.修改流任务

说明:对应项目 "有修改权限的用户和项目所有者" 能够修改流任务。注意类型是不能修改的。

PUT  /projects/:project-name/streaming/:name
Parameters: desc={desc}&parameter={parameter}&userDefParams={userDefParams}&notifyType={notifyType}&notifyMails={notifyMails}

Response:
Status: 200 OK

请求说明:所有参数都是可选的。

请求和返回同上。

4.删除流任务

说明:对应项目 "有修改权限的用户和项目所有者" 能够删除流任务,只有停止的流任务才能删除。

DELETE  /projects/:project-name/streaming/:name

Response:
Status: 204 No Content

5.查询流任务

说明:对应项目 "有查看权限的用户和项目所有者" 能够查询。

5.1 查询项目下所有流任务

说明:该 API 不会返回流任务的配置详情。

GET /projects/:project-name/streamings

Response:
Status: 200 OK
[
  {
    "name": "user_stat",
    "desc": "统计用户信息的流任务",
    "projectName": "bdi",
    "type": "SPARK_STREAMING",
    "notifyType": "FAILURE",
    "notifyMails": ["ABC@baifendian.com"],
    "createTime": 1468391778000,
    "modifyTime": 1468391778000,
    "owner": "bdi_user"
  }
]

5.2 查询流任务详情

GET /projects/:project-name/streaming/:name
  
Response:
Status: 200 OK
[
  {
    "name": "user_stat",
    "desc": "统计用户信息的流任务",
    "projectName": "bdi",
    "type": "SPARK_STREAMING",
    "notifyType": "FAILURE",
    "notifyMails": ["ABC@baifendian.com"],
    "parameter": {...},
    "userDefParams": [{
        "prop": "year",
        "value": "$[yyyy]"
      }
    ],
    "createTime": 1468391778000,
    "modifyTime": 1468391778000,
    "owner": "bdi_user"
  }
]

6.执行流任务

说明:对项目 "有执行权限的用户和项目所有者" 可以发起流任务的运行。必须是停止的任务才能继续执行,否则会报错。

POST /executors/streaming
Parameters: projectName={projectName}&name={name}&proxyUser={proxyUser}&queue={queue}

Response:
Status: 201 Created
{
  "execId": 111
}

7.停止流任务

说明:停止某个正在运行的任务,所属项目 "有执行权限的用户和项目所有者可以 kill 正在运行的任务"。

POST  /executors/streaming/:execId/kill

Response:
Status: 201 Created

8.暂停流任务

说明:暂停某个正在运行的任务,所属项目 "有执行权限的用户和项目所有者可以 deactivate 正在运行的任务"。目前只有storm任务支持该api。

POST  /executors/streaming/:execId/deactivate

Response:
Status: 201 Created

9.恢复流任务

说明:恢复某个暂停的任务,所属项目 "有执行权限的用户和项目所有者可以 activate 正在运行的任务"。目前只有storm任务支持该api。

POST  /executors/streaming/:execId/activate

Response:
Status: 201 Created

10.查看流任务运行详情

说明:对应项目 "有查看权限的用户和项目所有者" 能够查询。

GET /executors/streamings
Parameters: startDate={startDate}&endDate={endDate}&projectName={projectName}&name={name}&status={status}&from={from}&size={size}

Response:
Status: 200 OK
[
  "total": 123,
  "from": 10,
  "executions": [{
    "execId": 111,
    "name": "user_stat",
    "desc": "统计用户信息的流任务",
    "projectName": "bdi",
    "createTime": 1468391778000,
    "modifyTime": 1468391778000,
    "owner": "bdi_user",
    "type": "SPARK_STREAMING",
    "notifyType": "FAILURE",
    "notifyMails": ["ABC@baifendian.com"],
    "parameter": {...},
    "userDefParams": [{
      "prop": "year",
      "value": "$[yyyy]"
      }
    ],
    "submitTime": 1468391778000,
    "startTime": 1468391778000,
    "endTime": 1468391778000,
    "submitUser": "the user of submit workflow",
    "proxyUser": "bdi",
    "queue": "myqueue",
    "status": 2,
    "appLinks": ["http://...", "http://..."]
  }
]

参数说明:

参数 类型 是否必选 描述 说明
startDate long 起始时间 按照任务的提交时间计算
endDate long 结束时间 按照任务的提交时间计算
projectName string 项目名称
name string 流任务名称 注意这里采用的是模糊后缀匹配
status jsonArray<int> 默认查询所有的任务
from int 起始记录行 默认为 0
size int 请求记录数 默认为 100, 有效值 (0,1000]

返回结果根据 startTime 逆序排序。

11.查看流任务最新的运行详情

说明:对应项目 "有查看权限的用户和项目所有者" 能够查询。

GET /executors/streaming/latest
Parameters: projectName={projectName}&names={names}

Response:
Status: 200 OK
[
  {
    "execId": 111,
    "name": "user_stat",
    "desc": "统计用户信息的流任务",
    "projectName": "bdi",
    "createTime": 1468391778000,
    "modifyTime": 1468391778000,
    "owner": "bdi_user",
    "type": "SPARK_STREAMING",
    "notifyType": "FAILURE",
    "notifyMails": ["ABC@baifendian.com"],
    "parameter": {...},
    "userDefParams": [{
      "prop": "year",
      "value": "$[yyyy]"
      }
    ],
    "submitTime": 1468391778000,
    "startTime": 1468391778000,
    "endTime": 1468391778000,
    "submitUser": "the user of submit workflow",
    "proxyUser": "bdi",
    "queue": "myqueue",
    "status": 2,
    "appLinks": ["http://...", "http://..."]
  }
]

参数说明:

参数 类型 是否必选 描述 说明
projectName string 项目名称
names jsonArray 流任务名称列表,为空则查询项目下所有的

12.查询具体某个流任务运行详情

说明:对应项目 "有查看权限的用户和项目所有者" 能够查询。

GET /executors/streaming/:execId
  
Response:
Status: 200 OK
[
  {
    "execId": 111,
    "name": "user_stat",
    "desc": "统计用户信息的流任务",
    "projectName": "bdi",
    "createTime": 1468391778000,
    "modifyTime": 1468391778000,
    "owner": "bdi_user",
    "type": "SPARK_STREAMING",
    "notifyType": "FAILURE",
    "notifyMails": ["ABC@baifendian.com"],
    "parameter": {...},
    "userDefParams": [{
      "prop": "year",
      "value": "$[yyyy]"
      }
    ],
    "submitTime": 1468391778000,
    "startTime": 1468391778000,
    "endTime": 1468391778000,
    "submitUser": "the user of submit workflow",
    "proxyUser": "bdi",
    "queue": "myqueue",
    "status": 2,
    "appLinks": ["http://...", "http://..."]
  }
]

13.获取流任务日志

说明:获取流任务的日志,对项目 "有执行权限的用户和项目所有者" 可以获取流任务日志。

GET /executors/streaming/:execId/logs
Parameters: from={from}&size={size}&query={query-string}

Response:
Status: 200 OK
{
  "total": 121,
  "length": 10,
  "took": 15,
  "content": ["[INFO]...", "[ERROR]..."]
}

请求和返回参数参见: 运行和运维

Clone this wiki locally