PIG- udf 内的超时
Posted
技术标签:
【中文标题】PIG- udf 内的超时【英文标题】:PIG- timeout inside a udf 【发布时间】:2015-01-20 13:44:14 【问题描述】:我想在我的 udf 函数中引入超时。据我了解注释
受监控的UDF
将终止 exec 函数并返回 null。但是,由于之前可能有一些成功的处理,我希望它避免丢弃所有数据。理想情况下,我想为 UDF 内的特定代码部分实现超时。知道怎么做吗?
谢谢
【问题讨论】:
【参考方案1】:也许看看 MonitorUdf 的 ErrorHandler 和 TimeoutHadler ?
这里来自http://pig.apache.org/docs/r0.9.2/udf.html
如果需要,还可以通过以下方式实现自定义逻辑以进行错误处理 创建 MonitoredUDFExecutor.ErrorCallback 的子类,以及 覆盖其 handleError 和/或 handleTimeout 方法。这两个 方法是静态的,并在 EvalFunc 的实例中传递 产生异常以及异常,因此您可以使用 您在 UDF 中的任何状态都可以根据需要处理错误。这 默认行为是每次出现错误时递增 Hadoop 计数器 遇到。一旦你实现了 ErrorCallback 执行您的自定义逻辑,您可以在注释中提供它:
import org.apache.pig.builtin.MonitoredUDF;
@MonitoredUDF(errorCallback=MySpecialErrorCallback.class)
public class MyUDF extends EvalFunc<Integer>
/* implementation goes here */
【讨论】:
以上是关于PIG- udf 内的超时的主要内容,如果未能解决你的问题,请参考以下文章