xml - Mapreduce - 处理大型 xml 文件时出现堆内存问题

标签 xml hadoop mapreduce

我在我的 MR 代码中使用了 Mahout XMLINPUTFORMAT,并且成功处理了 XML(小尺寸)。

现在,当我尝试发送 800MB 的输入 XML 文件时出现 Java 堆内存异常,强文本映射已处理到 83% 并且作业失败

我尝试了以下配置,尽管在过程中运气不佳。

谁能告诉我如何处理大型(巨大)数据 xml 文件?

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")  

最佳答案

看起来你的配置有问题。

首先,您不需要 mapred.child.java.optsmapreduce.(map|reduce).child.java.opts 设置。 其次,您希望 mapreduce.(map|reduce).java.opts 中设置的堆空间为 mapreduce.(map|reduce).memory.mb 的 80% >

如果进行这些更改后,您仍然面临堆空间问题,我建议您处理较小的拆分或增加任务的堆空间。

关于xml - Mapreduce - 处理大型 xml 文件时出现堆内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26377390/

相关文章:

javascript - 这是使用 jQuery 解析 XML 时的错误吗?

.net - 在 Windows 窗体 C# 应用程序中拥有配置文件的最简单方法

java - 解析 XML 时序言中出现意外的 EOF

xml - XS型号 : getting model group information

java - MapReduce 和从外部源下载文件

hadoop - 谁在hadoop中拆分文件?是工作追踪器吗?

hadoop - Hive - 生成序列或缺失数据

java - 使用 Hadoop,如何更改给定作业的映射器数量?

cocoa - Swift 1.2 不愿意我的 NSString "+"map.reduce

hadoop MapReduce 随机播放错误 : Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out