2015-05-14 3 views
0

Любой, кто использовал конвейеры Crunch, знает, что ничего не происходит до тех пор, пока не вызывается метод pipeline.run()10 или pipeline.done(). Традиционно на большинстве языков мы можем поместить инструкции журналов для печати промежуточных значений переменных, но с помощью Crunch это невозможно из-за поведения конвейера. Есть ли способ/обходной путь для этого?Crunch Debug Logging

Спасибо.

ответ

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"); 
    } 
}