Подтвердить что ты не робот

Где hasoop mapreduce framework отправляет мои инструкции System.out.print()? (Стандартный вывод)

Я хочу отладить mapreduce script, и, не вдаваясь в дело, попытался поместить некоторые инструкции печати в свою программу. Но я не могу найти их в любом из журналов.

4b9b3361

Ответ 1

На самом деле stdout отображает только System.out.println() классов не-карты.

System.out.println() для фаз отображения и уменьшения можно увидеть в журналах. Легкий способ доступа к журналам -

http://localhost:50030/jobtracker.jsp- > щелкните по завершенному заданию- > щелкните по карте или уменьшите задачу- > щелкните по номеру задачи- > журналам задач- > stdout.

Надеюсь, что это поможет

Ответ 2

Другой способ - через терминал:

1) Войдите в свой каталог Hadoop_Installtion, а затем в "logs/userlogs".
2) Откройте каталог job_id.
3) Проверяйте каталоги с помощью _m_, если вы хотите, чтобы вывод mapper или _r_, если вы ищете редукторы.

Пример: В Hadoop-20.2.0:

> ls ~/hadoop-0.20.2/logs/userlogs/attempt_201209031127_0002_m_000000_0/
log.index   stderr      stdout      syslog

Вышеуказанное означает:
Hadoop_Installation: ~/hadoop-0.20.2
job_id: job_201209031127_0002
_m_: задача карты, "номер карты": _000000_

4) откройте stdout, если вы использовали "system.out.println" или stderr, если вы использовали "system.err.append".

PS. другие версии hadoop могут иметь различную иерархию зрения, но все они должны быть под $Hadoop_Installtion/logs/userlogs.

Ответ 3

В кластере Hadoop с yarn вы можете получить журналы, в том числе stdout, с помощью

yarn logs -applicationId application_1383601692319_0008

По какой-то причине я нашел это более полным, чем то, что я вижу в webinterface. Веб-интерфейс не отображал вывод System.out.println() для меня.

Ответ 4

чтобы получить ваше сообщение stdout и log на консоли, вы можете использовать фреймворк apache commons для вашего картографа и редуктора.

public class MyMapper extends Mapper<..,...,..,...> {

    public static final Log log = LogFactory.getLog(MyMapper.class)

    public void map() throws Exception{
        // Log to stdout file
        System.out.println("Map key "+ key);

        //log to the syslog file
        log.info("Map key "+ key);

        if(log.isDebugEanbled()){
            log.debug("Map key "+ key);
        }

        context.write(key,value);
    }
}