C'è un limite per le dimensioni del contatore Hadoop. È 120 per impostazione predefinita. Provo ad usare la configurazione "mapreduce.job.counters.limit" per cambiarlo, ma non funziona. Ho visto il codice sorgente. È come l'istanza di JobConf nella classe "org.apache.hadoop.mapred.Counters" è privato. Qualcuno l'ha mai visto prima? Qual è la tua soluzione? THX :)Più di 120 contatori in hadoop
risposta
È possibile ignorare che la proprietà in mapred-site.xml
sul JT, TT, i nodi client ma fare in modo che questa sarà una modifica a livello di sistema:
<configuration>
...
<property>
<name>mapreduce.job.counters.limit</name>
<value>500</value>
</property>
...
</configuration>
quindi riavviare il servizio MapReduce sul tuo grappolo.
Ho provato la tua soluzione. Funziona. Grazie :). Mi chiedo solo se c'è un modo per risolvere questo problema in modo dinamico. –
Non c'è modo di farlo per un singolo lavoro? – javamonkey79
Siamo in grado di personalizzare i limiti come opzioni della riga di comando solo per lavori specifici, invece di apportare modifiche in mapred-site.xml
.
-Dmapreduce.job.counters.limit=x
-Dmapreduce.job.counters.groups.max=y
NOTA: x
e y
sono valori personalizzati in base all'ambiente/requisito.
In Hadoop 2, questo parametro di configurazione è chiamato
mapreduce.job.counters.max
Impostazione sulla riga di comando o nel vostro oggetto Configuration non è sufficiente, però. È necessario chiamare il metodo statico
org.apache.hadoop.mapreduce.counters.Limits.init()
nel metodo setup() del mapper o riduttore per ottenere l'impostazione abbia effetto.
Testato con 2.6.0 e 2.7.1.
Il para è impostato dal file di configurazione, mentre paras sotto avranno effetto
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
Solo l'aggiunta di questo nel caso in cui nessun altro si affaccia lo stesso problema che abbiamo fatto: aumentare i contatori da con MRJob.
Per aumentare il numero di contatori, aggiungere emr_configurations
al mrjob.conf
(o passarlo a MRJob come parametro di configurazione):
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
- 1. Contatori atomici in DynamoDB
- 2. Denominazione dei contatori delle prestazioni a più istanze in .NET
- 3. Devo usare C++ 11 emplace_back con i contatori di contatori?
- 4. Contatori di prestazioni su iPhone
- 5. Python: contatori nidificati
- 6. Diversi contatori di tempo in MATLAB
- 7. Elenco sommario di contatori in python
- 8. Timeout in attesa di 120 secondi per l'avvio del simulatore
- 9. Contatori multipli in un singolo ciclo: Python
- 10. Hadoop legge più righe alla volta
- 11. Grep su più file nel filesystem Hadoop
- 12. Come interpretare MapReduce contatori di Performance
- 13. Sto facendo la cosa giusta per convertire il decibel da -120 - 0 a 0 - 120
- 14. . NET System.OutOfMemoryException su String.Split() di file CSV da 120 MB
- 15. Contatori delle prestazioni e threading
- 16. HTTP 504 timeout dopo esattamente 120 secondi
- 17. Eliminazione di DFS in Hadoop
- 18. Funzionamento di RecordReader in Hadoop
- 19. MultipleOutputFormat in hadoop
- 20. Contatori multipli in Javascript per il ciclo
- 21. Informazioni sui contatori in/proc/[pid]/io
- 22. Dove sono i file jar hadoop in hadoop 2?
- 23. Hadoop che accetta i file di input da più directory
- 24. Perché Spark è più veloce di Hadoop Map Riduci
- 25. contatori css nidificate con zeri
- 26. Differenze tra Hadoop-common, Hadoop-core e Hadoop-client?
- 27. Variabili globali in hadoop
- 28. Hadoop in rinomina file
- 29. C'è ln in hadoop HDFS
- 30. Valori di riduzione Hadoop in memoria?
Quale versione di Hadoop sono in esecuzione? – HypnoticSheep
È 0.20. L'hai visto prima? –
Non ho incontrato lo stesso problema (soprattutto perché non ho usato molto i contatori), ma sto usando 1.0.3 e la roba di JobConf è diversa. Prova la soluzione di Lorand in basso, sembra che funzionerà. – HypnoticSheep