2011-12-22 9 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-3520と、このmailに興味があるかもしれません。私はMAPREDUCE-3520で作業するつもりですが、時間がかかりません:)

+0

なぜこれにダウン投票があるのか​​分かりません。 –

+0

そのdownvoteは厄介でした。 Solr(Apacheによる進化する検索サーバー)の多くの質問には、Jiraの未解決の問題を指摘することで回答します。 – aitchnyu

+0

+1これは参考になったと思います。たぶんdownvoteのコメントは役に立ちますか? – jayunit100

関連する問題