• 【impala】取消impala失败的任务


    环境信息:


    组件版本
    cdh版本5.13
    操作系统版本centos 6.9
    kerberos

     

    问题现象:


    CDH集群impala失败任务取消不掉。

     

    问题原因:


    在cm界面取消impala任务会发送post请求,而post响应请求返回结果一般都超过10s,这时如果刷新或者执行别的操作,会使请求失败。从而导致取消任务失败。

    image

     

    解决方法:


    方法一:
    按F12 查看post 是否结束
    此方法,只能一个任务一个任务取消,而且响应请求较慢,比较浪费时间。

    方法二:
    使用脚本批量取消impala失败任务,脚本流程如下:

    • 查询失败的impala任务
    • 取消失败的impala任务

    脚本内容如下:

    #!/usr/bin/python27
    # -*- coding:utf-8 -*-
    
    import sys
    import commands
    import requests
    
    cmip = "10.11.4.247"
    #填写cm的用户名密码
    cmuser = "username"
    cmpasswd = "password"
    
    # 查询失败任务
    def get_faled_job():
      api = "http://%s:7180/api/v17/clusters/cluster/services/impala/impalaQueries?filter=(queryState=EXCEPTION)"%(cmip)
      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_faled_job(querys):
      for query in querys:
        print query['queryId']
        queryId = query['queryId']
        canelapi = "http://%s:7180/api/v17/clusters/cluster/services/impala/impalaQueries/%s/cancel"%(cmip,queryId)
        s = requests.session()
        s.auth = (cmuser, cmpasswd)
        try:
          canelres = s.post(canelapi)
          caneldata = canelres.json()
          print canelapi
       except Exception:
          pass
    
    
    if __name__ == '__main__':
       querys = get_faled_job()
       cancel_faled_job(querys)

    此时impala查询界面已经没有不能取消的任务了,问题解决!

    image
  • 相关阅读:
    家庭记账本_2
    家庭记账本_1
    安卓学习进度_25
    安卓软件学习进度_24
    对体温上报app的总结
    安卓软件学习进度_23
    安卓软件学习进度_22
    安卓开发
    安卓开发
    安卓开发
  • 原文地址:https://www.cnblogs.com/erlou96/p/16878376.html
Copyright © 2020-2023  润新知