内容纲要
概要描述
有些用户需要通过自己的运维管理平台管理提交到我们quark的Query。主要是查看任务进度
详细描述
实现原理
1.每个session只会执⾏⼀个查询语句(如SQL)。
2.执⾏查询语句之前,通过参数ngmr.session.name为session设置⼀个⾃定义名称。
3.通过⾃定义的session名称,查看最近的查询语句的执⾏状态/耗时等信息,或者kill该查询。
实现方式
1.为session设置⾃定义名称
⽅式1: 在执⾏SQL之前执⾏:set ngmr.session.name=my.s2;
⽅式2: beeline -u "jdbc:hive2://test2:10000/default;?ngmr.session.name=my.s2" -n admin -p admin –maxWidth=1000
2.通过DBAService获取运行中的查询
curl -X POST "http://172.22.23.4:4048/api/insights/instance/query/sqlList?guardian_access_token=t4Dwqew6MXmaICtHBV2i-KTDH" -H "accept: */*" -H "Content-Type: application/json" -d "{\"serverKey\":\"inceptor1@172.22.23.4:8888\",\"pagination\":{\"pageNumber\":1,\"pageSize\":1},\"filters\":{\"status\":[\"RUNNING\",\"SUBMITTED\",\"FETCHRESULT\",\"FILECOMMIT\",\"POSTRUN\"]},\"sorter\":{},\"enableHistory\":false}"
3.参数说明
{
"serverKey": "quark1@172.18.128.103:8888", // quark服务唯一标识
"pagination": {
"pageNumber": 1,
"pageSize": 20
},
"filters": {
"status": [ // 运行中的任务的不同阶段状态
"RUNNING",
"SUBMITTED",
"FETCHRESULT",
"FILECOMMIT",
"POSTRUN"
],
"sessionName": "my.s2" // 前面提交设置的ngmr.session.name的值
},
"sorter": {},
"enableHistory": false // 非历史查询
}
4.返回结果
{
"total": 2,
"data": {
"queryLimitCN": null,
"queryLimitEN": null,
"sqls": [
{
"serverKey": "Inceptor::linux-idc-128-103::9c77aaab-29c4-4d4f-a733-d7c091781439",
"sqlId": 55636, // 查询任务ID,后面kill会需要
"sqlContent": "SELECT *FROM dlx.product_dw WHERE price_group_id='L3'", // 查询任务详情
"mode": "cluster", // 查询任务的执行模式
"group": "inceptor",
"user": "hive", // 查询任务的提交用户
"sessionId": 81692,
"sessionName": "",
"status": "FETCHRESULT", // 查询任务当前执行阶段状态,FAILED表示失败,SUCCESS表示成功
"errMessage": null, // 查询任务的报错信息
"submissionTime": 1684323388675, // 查询任务开始时间
"completionTime": 0, // 查询任务完成时间,0表示未结束
"duration": 2844654, // 查询任务总耗时
"latestTime": 1684323390612,
"jobStats": { // job的执行进度
"running": 0,
"completed": 1,
"failed": 0,
"skipped": 0,
"unknown": 0,
"waiting": 0,
"expected": 0,
"totalCost": 0
},
"stageStats": {// stage的执行进度
"running": 0,
"completed": 1,
"failed": 0,
"skipped": 0,
"unknown": 0,
"waiting": 0,
"expected": 1,
"totalCost": 0
},
"taskStats": { // task的执行进度
"running": 0, // 查询任务占用的计算资源(executor核数)
"completed": 47,
"failed": 0,
"skipped": 0,
"unknown": 0,
"waiting": 0,
"expected": 47,
"totalCost": 20593
},
"poolNameSet": [ // 查询任务的资源池/调度池
"Q1"
],
"jobTotal": 1,
"stageTotal": 1,
"taskTotal": 47,
"tags": "FINISHED",
"sqlLength": 53,
"shuffleReadSize": 0,
"shuffleWriteSize": 0,
"taskCost": 20462,
"tables": [
"dlx.product_dw"
],
"inceptorTxnIds": [],
"waitArgoHoloTxnIds": [],
"blockArgoHoloTxnIds": [],
"argoHoloTxnIds": [
0
],
"taskAbnormal": [],
"waitTime": 36,
"sqlType": "",
"uniqueSign": "Q09NTU9OK0luY2VwdG9yOjpsaW51eC1pZGMtMTI4LTEwMzo6OWM3N2FhYWItMjljNC00ZDRmLWE3MzMtZDdjMDkxNzgxNDM5KzU1NjM2"
}
],
"statistics": {
"running": 2,
"success": 0,
"failed": 0
}
},
"messageCode": 601,
"message": "Success",
"info": [],
"warning": [],
"error": [],
"watchmanTimestamp": 1684326233330
}
注意事项
1.请确保inceptor或者quark都打了最新版本的patch
2.dba升级dba-9.4.2-final或以上版本
3.提交任务时设置的sessionName