impala超时任务取消脚本



```python
#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys
import commands
import requests

cmip = "10.888.888.35"
#填写cm的用户名密码
cmuser = "admin"
cmpasswd = "00000000000"
cluster_name = "Cluster 1"

# 查询任务queryState=EXCEPTION or queryState=RUNNING or queryState=FINISHED & query_duration > 8m 
# curl -u admin:00000000000 -X GET --header 'Accept: application/json' 'http://10.888.888.35:7180/api/v17/clusters/Cluster%201/services/impala/impalaQueries'
# curl -u admin:00000000000 -X GET --header 'Accept: application/json' 'http://10.888.888.35:7180/api/v17/clusters/Cluster%201/services/impala/impalaQueries?filter=(queryState=RUNNING or queryState=EXCEPTION)'
# curl -u admin:00000000000 'http://10.888.888.35:7180/api/v17/clusters'
# curl -u admin:00000000000 'http://10.888.888.35:7180/api/v17/clusters/Cluster%201/services'

def get_running_job():
  api = "http://%s:7180/api/v17/clusters/%s/services/impala/impalaQueries?filter=(queryState=RUNNING)"%(cmip,cluster_name)
  s = requests.session()
  s.auth = (cmuser, cmpasswd)
  try:
    res = s.get(api)
    data = res.json()
    querys = data['queries']
  except Exception:
    pass
  return querys
 
# 取消任务
def cancel_job(querys):
  for query in querys:
    #print query
    #print query['queryId']
    querytime = query['durationMillis']
    queryId = query['queryId']
    if querytime > 6000:
        print "Use time: " + str(querytime)
        canelapi = "http://%s:7180/api/v17/clusters/%s/services/impala/impalaQueries/%s/cancel"%(cmip,cluster_name,queryId)
        s = requests.session()
        s.auth = (cmuser, cmpasswd)
        try:
          #canelres = s.post(canelapi)
          #caneldata = canelres.json()
          print canelapi
        except Exception:
          pass
    else:
        print "Not Timeout!"

if __name__ == '__main__':
   querys = get_running_job()
   cancel_job(querys)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值