• 【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
  • 相关阅读:
    做报表,写Sql语句的一点收获
    ORACLE PL/SQ入门
    用Visual C#实现P2P应用程序
    css资源网站收集推荐
    Ubuntu 蓝牙全攻略
    Asp.Net细节性问题技巧精萃
    Asp.net Request获取服务器变量的方法
    如何将flash插入到Excel文件中
    XP远程桌面连接强制登录
    flash研究(三)——Falsh与JavaScript交互
  • 原文地址:https://www.cnblogs.com/erlou96/p/16878376.html
Copyright © 2020-2023  润新知