impala超时任务取消2


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

import sys
import commands
XXXimport requests
XXX
cmip = "10.11.XXX.XXX"
#填写cm的用户名密码
cmuser = "admin"
cmpasswd = "XXXXXXXXXXXX"
cluster_name = "Cluster 1"

# 查询任务
# curl -u admin:XXXXXXX 'http://10.11.XXX.XXX:7180/api/v17/clusters/Cluster%201/services/impala/impalaQueries?filter=(queryState=RUNNING)'
# http://10.11.XXX.XXX:7180/api/v1/hosts/57c821ba-ed31-40fc-9754-dbae70f1e9b2    取得:ipAddress
# http://10.111.XXX.XXX:25000/cancel_query?query_id=9e473bb3786ab71c:abb3909100000000


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:
    querytime = query['durationMillis']
    queryId = query['queryId']
    hostId = query['coordinator']['hostId']
    if querytime > 6000:
        print "Use time: " + str(querytime)
        ipapi = "http://%s:7180/api/v1/hosts/%s"%(cmip,hostId)
        print ipapi
        s = requests.session()
        s.auth = (cmuser, cmpasswd)
        try:
          res1 = s.get(ipapi)
          data1 = res1.json()
          ipd = data1['ipAddress']
          print ipd
        except Exception:
          pass
        calapi = "http://%s:25000/cancel_query?query_id=%s"%(ipd,queryId)
        print calapi
        try:
          res2 = s.get(calapi)
          data2 = res2.json()
          print data2
        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、付费专栏及课程。

余额充值