Crunch Debug Logging
Любой, кто использовал конвейеры Crunch, знает, что на самом деле ничего не выполняется до pipeline.run()
или же pipeline.done()
метод называется. Традиционно в большинстве языков мы можем поместить операторы log для вывода промежуточных значений переменных, но в Crunch это невозможно из-за поведения конвейера. Есть ли способ / обходной путь для этого?
Благодарю.
2 ответа
Вы можете добавить операторы debug и log в функции 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");
}
}