Ja som používal Mahout XMLINPUTFORMAT v mojom MR kóde a XML (malá veľkosť) je úspešne spracovaný.
Teraz, keď sa pokúšam odoslať 800 MB vstupného XML súboru, dostanem výnimku Java Heap Memory, to sa dostalo po tom, ako bola spracovaná silná textová mapa na 83% a práca bola neúspešná.
Snažil som sa s nižšie konfigurácie, aj keď nie šťastie na proces.
Mohol by niekto prosím, dajte mi vedieť, ako proces veľké (obrovské) dáta xml súbor?
"
conf.set("mapreduce.input.fileinputformat.split.minsize","3073741824")
conf.set("mapred.child.java.opts", "-Xmx14096m -Xss2048m")
conf.set("mapreduce.map.child.java.opts", "-Xmx8072m")
conf.set("mapreduce.reduce.child.java.opts", "-Xmx3024m")
conf.setInt("io.sort.factor",15 )
conf.setInt("mapreduce.task.io.sort.mb",2048 )
conf.set("mapreduce.task.timeout","6000000")
conf.set("mapreduce.map.memory.mb", "3072")
conf.set("mapreduce.map.java.opts", "-Xmx3072m")
conf.set("mapreduce.reduce.memory.mb", "1024")
conf.set("mapreduce.reduce.java.opts", "-Xmx1024m")
conf.set("task.io.sort.mb", "2048")
conf.set("task.io.sort.factor", "100")
conf.set("mapred.job.shuffle.input.buffer.percent","0.40")
odpovede:
0 pre odpoveď č. 1Zdá sa, že v konfigurácii je problém.
Po prvé, nepotrebujete mapred.child.java.opts
alebo mapreduce.(map|reduce).child.java.opts
nastavenie. Po druhé, chcete vytvoriť priestor haldy mapreduce.(map|reduce).java.opts
to znamená 80% mapreduce.(map|reduce).memory.mb
Ak po vykonaní týchto zmien ste ešte stále čelili problému s priestorovým haldom, odporúčam buď spracovanie menších rozdielov, alebo zvýšenie priestoru pre úlohy.