从hadoop 中删除匹配指定字符串的任务

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 我们都知道如果使用 hadoop job -list 获取当前正在运行的hadoop 任务,返回的结果如下: 返回的任务中不包括任务的名称, 但是通过hadoop 管理页面是可以查看到job 的名称的。 但是现实情况是我们可能需要根据任务的名称来删除任务。 我的实现方案是这样的 通过获取 http://192.168.1.100:50030/jobtracker.jsp 网页 解析网页获取任务名称 + job_id 的任务列表 过滤出指定名称的job 最后调用hadoop job -kill <job_id> 来杀死任务 from HTMLParser import HTMLParser class MyHTMLParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) # self.current_tag = None self.flag = False self.name_flag = False def handle_starttag(self, tag, attrs): if tag == &#039;td&#039;: for name,value in attrs: if name == &#039;id&#039; and value.startswith(&quot;job_&quot;): self.flag = True self.name_flag = False break elif name == &#039;id&#039; and value.startswith(&quot;name_&quot;): self.flag = True self.name_flag = True break def handle_endtag(self, tag): self.flag = False def handle_data(self, data): if self.flag: print data, if self.name_flag: print &#039; &#039; if __name__ == &#039;__main__&#039;: fp = open(&quot;./jobtracker.jsp&quot;) data = fp.read() my = MyHTMLParser() my.feed(data) 主程序 kill_job.sh ...

January 2, 2018 · 1 min