Отладка 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-таблица имеет следующие колонки:

  1. job_id — id джоба.
  2. part_index — если stderr одного джоба большой, он разбивается на части. Значение part_index указывает на номер конкретной части stderr.
  3. data — непосредственно сами данные stderr.

Таблица отсортирована по job_id, part_index.

Прочитать такую таблицу можно с помощью команды read_blob_table.