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
Antwort
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.
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. –
Gibt es keine Möglichkeit, dies für einen einzelnen Job zu tun? – javamonkey79
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.
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.
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
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
Welche Version von Hadoop sind Sie? – HypnoticSheep
Es ist 0,20. Hast du das schon mal gesehen? –
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