Logging Crunch调试日志
任何使用过Crunch管道的人都知道,在调用Logging Crunch调试日志,logging,apache-crunch,Logging,Apache Crunch,任何使用过Crunch管道的人都知道,在调用pipeline.run()或pipeline.done()方法之前,实际上不会执行任何操作。传统上,在大多数语言中,我们可以使用日志语句打印出中间变量值,但使用Crunch,由于管道行为,这是不可能的。有没有办法解决这个问题 谢谢。您可以在执行管道期间记录的DoFn、MapFn、FilterFn函数中添加debug和log语句。我通过获取logger并在我的DoFn中使用它来完成这项工作 import org.apache.log4j.Logger;
pipeline.run()
或pipeline.done()
方法之前,实际上不会执行任何操作。传统上,在大多数语言中,我们可以使用日志语句打印出中间变量值,但使用Crunch,由于管道行为,这是不可能的。有没有办法解决这个问题
谢谢。您可以在执行管道期间记录的DoFn、MapFn、FilterFn函数中添加debug和log语句。我通过获取
logger
并在我的DoFn中使用它来完成这项工作
import org.apache.log4j.Logger;
...
public static class MyDoFn extends DoFn<Integer, String> {
private static final Logger logger = Logger.getLogger(MyDoFn.class);
...
@Override
public void process(Integer input, Emitter<String> emitter) {
...
logger.info("hello");
}
}
import org.apache.log4j.Logger;
...
公共静态类MyDoFn扩展了DoFn{
私有静态最终记录器=Logger.getLogger(MyDoFn.class);
...
@凌驾
公共void进程(整数输入、发射器){
...
logger.info(“你好”);
}
}