0
任何使用過Crunch管道的人都知道,在調用pipeline.run()
或pipeline.done()
方法之前什麼都沒有實際執行。傳統上,在大多數語言中,我們可以將日誌語句打印出中間變量值,但是由於流水線行爲的緣故,這是不可能的。有沒有一種方法/解決方法呢?緊縮調試日誌記錄
謝謝。
任何使用過Crunch管道的人都知道,在調用pipeline.run()
或pipeline.done()
方法之前什麼都沒有實際執行。傳統上,在大多數語言中,我們可以將日誌語句打印出中間變量值,但是由於流水線行爲的緣故,這是不可能的。有沒有一種方法/解決方法呢?緊縮調試日誌記錄
謝謝。
您可以在執行管道期間記錄的DoFn,MapFn,FilterFn函數內添加調試和日誌語句。
我已經完成了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");
}
}