如何停止由Hive启动的MapReduce作业?

8

我现在使用的是CDH 5.1。它通过YARN启动正常的Hadoop作业,但hive仍然使用mapred。有时一个大查询会卡很久,我想把它杀掉。

我可以通过JobTracker web控制台找到这个大作业,但它没有提供任何按钮来杀死它。

另一种方法是通过命令行来杀死作业。然而,我无法通过命令行找到正在运行的任何作业。

我已经尝试了以下两个命令:

  • yarn application -list
  • mapred job -list

如何杀死这样的大查询?

1个回答

18

当你运行作业或从Web UI获得时,可以从Hive CLI中获取作业ID。你也可以使用资源管理器的应用程序ID列出作业ID。理想情况下,您应该从所有这些来源获取信息。

mapred job -list
或者
hadoop job -list

使用工作标识符,您可以使用以下命令终止它。

hadoop job -kill <job_id>

另一个选择是使用终止应用程序的方式来解决问题。

yarn application -kill <application_id>

我尝试过但失败了,出现了“Application with id 'application_201502060008_2375' doesn't exist in RM”的错误提示,看起来它使用的是YARN而不是mapred - 2shou
用“应用程序”代替“作业”...那应该可以...ApplicationId与JobId不同...ApplicationId是为了Yarn而设定的。 - Pradeep Gollakota
我的原始命令是 hadoop job -kill job_201502060008_2375,但是 job 被替换成了 application。我不知道为什么。 - 2shou
1
正如我之前提到的,你也可以从Hive CLI中获取kill命令。一旦执行开始,它会给你一个kill命令。 - Harman
谢谢。当我关闭Hive CLI时,我该如何找到kill命令? - 2shou
@2shou 你能否接受这个答案,如果它对你有帮助? - Harman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接