2012-08-27 6 views
6

Die Hadoop-Zählergröße ist begrenzt. Es ist standardmäßig 120. Ich versuche, die Konfiguration "mapreduce.job.counters.limit" zu ändern, aber es funktioniert nicht. Ich habe den Quellcode gesehen. Es ist wie die Instanz von JobConf in der Klasse "org.apache.hadoop.mapred.Counters" ist privat. Hat das jemand schon mal gesehen? Was ist deine Lösung? THX :)Mehr als 120 Zähler in hadoop

+0

Welche Version von Hadoop sind Sie? – HypnoticSheep

+0

Es ist 0,20. Hast du das schon mal gesehen? –

+0

Ich bin nicht auf das gleiche Problem gestoßen (hauptsächlich, weil ich Zähler nicht viel benutzt habe), aber ich benutze 1.0.3 und das JobConf-Zeug ist anders. Versuchen Sie Lorand Lösung unten, es sieht so aus, als ob es funktioniert. – HypnoticSheep

Antwort

5

können Sie diese Eigenschaft überschreiben, in mapred-site.xml auf JT, TT, Client-Knoten, aber stellen Sie sicher, dass dies eine systemweite Änderung sein:

<configuration> 
    ... 
    <property> 
    <name>mapreduce.job.counters.limit</name> 
    <value>500</value> 
    </property> 
    ... 
</configuration> 

dann den mapreduce Dienst neu starten, auf dem Cluster.

+0

Ich habe deine Lösung versucht. Es klappt. Danke :). Ich frage mich nur, ob es eine Möglichkeit gibt, dieses Problem dynamisch zu lösen. –

+0

Gibt es keine Möglichkeit, dies für einen einzelnen Job zu tun? – javamonkey79

-1

Wir können die Grenzwerte als Befehlszeilenoptionen nur für bestimmte Aufträge anpassen, anstatt Änderungen in mapred-site.xml vorzunehmen.

-Dmapreduce.job.counters.limit=x 
-Dmapreduce.job.counters.groups.max=y 

HINWEIS: x und y sind benutzerdefinierte Werte basierend auf Ihrer Umgebung/Anforderung.

4

In Hadoop 2 diese Konfigurationsparameter

mapreduce.job.counters.max 

es auf der Kommandozeile Einstellung oder in der Konfiguration Objekt aufgerufen wird, ist nicht genug, though. Sie müssen die statische Methode

org.apache.hadoop.mapreduce.counters.Limits.init()

im Setup() -Methode des Mapper oder Minderer zu bekommen um die Einstellung rufen zu übernehmen.

Getestet mit 2.6.0 und 2.7.1.

0

Die para wird durch Konfigurationsdatei festgelegt, während unten Abs wirksam werden

mapreduce.job.counters.max=1000 
mapreduce.job.counters.groups.max=500 
mapreduce.job.counters.group.name.max=1000 
mapreduce.job.counters.counter.name.max=500 
0

gerade das Hinzufügen dieser sonst falls jemand steht vor dem gleichen Problem wir haben: die Zähler aus mit MRJob erhöhen.

die Anzahl von Zählern zu erhöhen, fügen emr_configurations zu Ihrem mrjob.conf (oder es zu MRJob als Config-Parameter übergeben):

runners: 
    emr: 
    emr_configurations: 
     - Classification: mapred-site 
     Properties: 
      mapreduce.job.counters.max: 1024 
      mapreduce.job.counters.counter.name.max: 256 
      mapreduce.job.counters.groups.max: 256 
      mapreduce.job.counters.group.name.max: 256