Управление счетчиками в больших картах / уменьшенных приложениях - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть несколько схожих заданий сопоставления / сокращения с разными именами счетчиков и различными getCounter() соглашениями.

  1. Существует ли эффективный идиоматический способ hadoop для управления единообразным использованием регистрации в счетчике в больших приложениях карты / сокращения?

  2. Я так думаюЭто несколько пугающая идея, что различные задания карты / сокращения могут создавать свои собственные счетчики.Есть ли способ, которым вы можете отключить это, так что все счетчики должны быть созданы из одного ресурса?Я думаю, что это улучшило бы качество вывода для некоторых из моих классов.

  3. Любые другие методы для анализа или управления всеми счетчиками в приложении приветствуются ...

1 Ответ

4 голосов
/ 23 декабря 2011

Следующий код находится в Counters.java . Обратите внимание, что этот код находится в выпусках 20.203, 20.204 и 20.205 (теперь называется 1.0). Также обратите внимание, что некоторые параметры настраиваются, а некоторые нет.

/** limit on the size of the name of the group **/
private static final int GROUP_NAME_LIMIT = 128;
/** limit on the size of the counter name **/
private static final int COUNTER_NAME_LIMIT = 64;

private static final JobConf conf = new JobConf();
/** limit on counters **/
public static int MAX_COUNTER_LIMIT = 
conf.getInt("mapreduce.job.counters.limit", 120);

/** the max groups allowed **/
static final int MAX_GROUP_LIMIT = 50;

В транке и выпуске 0.23 приведенный ниже код есть в MRJobConfig.java . Обратите внимание, что параметры настраиваются.

public static final String COUNTERS_MAX_KEY = "mapreduce.job.counters.max";
public static final int COUNTERS_MAX_DEFAULT = 120;

public static final String COUNTER_GROUP_NAME_MAX_KEY = "mapreduce.job.counters.group.name.max";
public static final int COUNTER_GROUP_NAME_MAX_DEFAULT = 128;

public static final String COUNTER_NAME_MAX_KEY = "mapreduce.job.counters.counter.name.max";
public static final int COUNTER_NAME_MAX_DEFAULT = 64;

public static final String COUNTER_GROUPS_MAX_KEY = "mapreduce.job.counters.groups.max";
public static final int COUNTER_GROUPS_MAX_DEFAULT = 50;

Вас может заинтересовать MAPREDUCE-3520 и эта почта . Я планирую работать над MAPREDUCE-3520, но не получаю время :)

...