2011-12-22 38 views
0

我有幾個相似的地圖/縮小作業,它們具有不同的計數器名稱和不同的getCounter()約定。在大型地圖/縮小應用程序中管理計數器

  1. 是否有管理的大地圖 統一使用計數器記錄的有效,地道的Hadoop方式/減少應用程序?

  2. 我認爲這是一個有點可怕的想法,不同的地圖/減少工作可以使自己的計數器。有沒有一種方法可以禁用此功能,以便所有計數器必須從單個資源創建?我認爲這會提高我的一些班級的產出質量。

  3. 任何其它技術來在一個應用程序分析或控制的所有計數器,將不勝感激...

回答

4

以下代碼是在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-3520mail。我打算在MAPREDUCE-3520上工作,但沒有時間:)

+0

不知道爲什麼會有這個投票。 – 2011-12-23 04:20:17

+0

那個downvote是討厭的。許多Solr(Apache發展中的搜索服務器)問題也通過指出Jira中的突出問題得到解答。 – aitchnyu 2011-12-23 05:12:04

+0

+1我認爲這有幫助。也許對downvote發表評論會有幫助嗎? – jayunit100 2011-12-23 05:34:33

相關問題