紧缩调试日志记录

时间:2015-05-14 15:57:03

标签: logging apache-crunch

使用Crunch管道的任何人都知道在调用pipeline.run()pipeline.done()方法之前实际上没有执行任何操作。传统上,在大多数语言中,我们可以使用日志语句打印出中间变量值,但是由于管道行为,使用Crunch这是不可能的。有没有办法/解决方法呢?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在执行管道期间记录的DoFn,MapFn,FilterFn函数中添加调试和日志语句。

答案 1 :(得分:1)

我是通过获取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");
    }
}