Istnieje limit rozmiaru licznika Hadoop. Domyślnie jest to 120. Próbuję użyć konfiguracji "mapreduce.job.counters.limit", aby to zmienić, ale to nie działa. Widziałem kod źródłowy. To tak, jakby instancja JobConf w klasie "org.apache.hadoop.mapred.Counters" jest prywatna. Czy ktoś wcześniej to widział? Jakie jest twoje rozwiązanie? THX :)Ponad 120 liczników w hadoop
Odpowiedz
Można zastąpić tę nieruchomość w mapred-site.xml
na JT, TT, węzłów klienckich, ale upewnij się, że będzie to zmiana całego systemu:
<configuration>
...
<property>
<name>mapreduce.job.counters.limit</name>
<value>500</value>
</property>
...
</configuration>
Następnie uruchom ponownie usługę mapreduce na swoje grupa.
Próbowałem Twojego rozwiązania. To działa. Dzięki :). Zastanawiam się tylko, czy istnieje sposób na dynamiczne rozwiązanie tego problemu. –
Czy nie można tego zrobić dla pojedynczego zadania? – javamonkey79
Możemy dostosować limity jako opcje wiersza poleceń tylko dla określonych zadań, zamiast dokonywania zmian w mapred-site.xml
.
-Dmapreduce.job.counters.limit=x
-Dmapreduce.job.counters.groups.max=y
UWAGA: x
i y
są wartościami niestandardowe w oparciu o środowisko/wymogu.
W Hadoop 2, ten parametr konfiguracyjny nazywa
mapreduce.job.counters.max
Ustawienie go w linii poleceń lub w obiekcie konfiguracji nie wystarczy, choć. Musisz wywołać metody statycznej
org.apache.hadoop.mapreduce.counters.Limits.init()
w metodzie setup() swojego odwzorowującym lub reduktora, aby uzyskać ustawienia odniosły skutek.
Testowane przy użyciu wersji 2.6.0 i 2.7.1.
PARA ustala pliku konfiguracyjnego, natomiast pkt poniżej będą obowiązywać
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
wystarczy dodać to na wypadek gdyby ktoś inny stoi ten sam problem co my: zwiększenie liczników zz MRJob.
Aby podnieść liczbę liczników, dodać emr_configurations
do mrjob.conf
(lub przekazać je do MRJob jako parametr config):
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
Jaka wersja Hadoop są uruchomione? – HypnoticSheep
To 0,20. Widziałeś to już wcześniej? –
Nie spotkałem się z tym samym problemem (głównie dlatego, że nie używałem zbyt wielu liczników), ale używam wersji 1.0.3, a rzeczy JobConf są inne. Wypróbuj rozwiązanie Loranda poniżej, wygląda na to, że to zadziała. – HypnoticSheep