gpt4 book ai didi

java - 在化简程序代码中以编程方式停止作业

转载 作者:行者123 更新时间:2023-12-02 22:00:26 26 4
gpt4 key购买 nike

假设我在化简器代码的输入键/值中检测到某些东西,应该实际运行什么代码,以使化简器不再继续运行,输出中发出的任何记录都将写入输出文件,并且作业不再继续减少发生的事情?

最佳答案

停止工作可能不是一个好主意。
但是,如果您需要它,一种方法是创建自己的异常类,也许扩展InterruptedExceptionIOException,并在您想退出时在条件出现时抛出该异常。

您的异常类可能如下:

Class QuitReducerException extends InterruptedException {

//Parameterless Constructor
public QuitReducerException() {}

//Constructor that accepts a message
public QuitReducerException(String message)
{
super(message);
}
}

在您的reduce方法中,您可以按以下方式使用它:
@Override
protected void reduce(Text key, Iterable values, Context context) throws IOException,InterruptedException {
...
if(<condition to quit happen>){
throw new QuitReducerException("Quitting reducer due to some specified reason");// You may add details of the reason you are quitting and this will be available in the job logs (in stderr)
}
...
}

PS:这不能确保当前reducer发出的输出将提交给输出文件。同样,任何其他尚未完成的reducer也不会提交文件。尽管 reducer 已经完成,但它们已经 promise 了其输出。

关于java - 在化简程序代码中以编程方式停止作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15819175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com