Отладка MapReduce программ
Локальная эмуляция запуска джоба
Вы можете эмулировать запуск джоба на любом компьютере, например на разработческом сервере. Подробнее о локальной эмуляции джоба см. в разделах Утилита для локальной отладки джобов и Диагностика медленных джобов.
Получение текущего stderr выполняющегося джоба
В ходе выполнения операции может получиться, что завершились все джобы, кроме одного. В системе YTsaurus можно получить stderr, который джоб написал к текущему моменту.
В команде yt
для этого реализован режим yt get-job-stderr
.
yt get-job-stderr --operation-id 35060d89-f9328e09-3f403e8-6f4eb4b5 --job-id fe270b54-a938652-3fc0384-2144
Stderr в выводе обрезается по тем же правилам, как для сохранения в файлах в Кипарисе: несколько первых мегабайт плюс несколько последних мегабайт.
Получение полных stderr всех джобов операции
В системе YTsaurus существует возможность сохранить полные stderr всех джобов в таблицу. Можно выгрузить stderr тех джобов, которые не были прерваны (aborted).
Для включения описанного поведения:
Используйте параметр stderr_table
. Например:
yt.wrapper.run_map_reduce( mapper, reducer, '//path/to/input', '//path/to/output', reduce_by=['some_key'], stderr_table='//path/to/stderr/table', )
Используйте настройку StderrTablePath.
Можно передать настройку stderr_table_path
напрямую в спецификацию операции. Описание данной опции см. в разделе Настройки операций.
Stderr-таблица имеет следующие колонки:
job_id
— id джоба.part_index
— если stderr одного джоба большой, он разбивается на части. Значениеpart_index
указывает на номер конкретной части stderr.data
— непосредственно сами данные stderr.
Таблица отсортирована по job_id
, part_index
.
Прочитать такую таблицу можно с помощью команды read_blob_table.