我想自动杀死我的所有Hadoop作业时,我的代码遇到未处理的异常。 我想知道什么是做的最好的做法呢?
谢谢
我想自动杀死我的所有Hadoop作业时,我的代码遇到未处理的异常。 我想知道什么是做的最好的做法呢?
谢谢
根据不同的版本,这样做:
版本<2.3.0
杀一个Hadoop的工作:
hadoop job -kill $jobId
你可以得到所有的jobId正在做的一个列表:
hadoop job -list
版本> = 2.3.0
杀一个Hadoop的工作:
yarn application -kill $ApplicationId
你可以得到所有的applicationID在做的一个列表:
yarn application -list
folloing命令的使用折旧
hadoop job -list
hadoop job -kill $jobId
考虑使用
mapred job -list
mapred job -kill $jobId
运行list
显示所有的工作,然后在适当的命令中使用的JobID /的applicationID。
杀mapred工作:
mapred job -list
mapred job -kill <jobId>
杀纱作业:
yarn application -list
yarn application -kill <ApplicationId>
未处理的异常会(假设它是可重复的类似错误的数据,而不是读取特定的数据节点的错误)反正最终无法完成作业。
您可以配置的时间特定地图的最大数量或减少整个作业可以通过以下属性失败之前任务可能会失败:
mapred.map.max.attempts
- 每个地图的任务尝试的最大数量。 换句话说,框架将尝试了在放弃之前执行Map任务这么些次数。 mapred.reduce.max.attempts
-同上,但对于降低任务 如果您想在第一次失败失败了一份工作,从4默认为1设置此值。
简单地强行杀死进程ID,Hadoop的工作也将自动杀死。 使用此命令:
kill -9 <process_id>
例如:进程ID NO:4040名称节点
username@hostname:~$ kill -9 4040