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");
    }
}
Другие вопросы по тегам