2015-05-14 144 views
0

任何使用過Crunch管道的人都知道,在調用pipeline.run()pipeline.done()方法之前什麼都沒有實際執行。傳統上,在大多數語言中,我們可以將日誌語句打印出中間變量值,但是由於流水線行爲的緣故,這是不可能的。有沒有一種方法/解決方法呢?緊縮調試日誌記錄

謝謝。

回答

0

您可以在執行管道期間記錄的DoFn,MapFn,FilterFn函數內添加調試和日誌語句。

0

我已經完成了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"); 
    } 
}