【问题标题】:Error: org/jdom/JDOMException while running map reduce job错误:运行 map reduce 作业时出现 org/jdom/JDOMException
【发布时间】:2013-04-01 19:18:32
【问题描述】:

您好,我正在尝试使用 map reduce 框架解析 XML 文件。我正在使用 JDOM Parser 来解析 XML 文件。但是当我在伪节点集群上运行我的 map reduce 代码时,它会给我以下错误。

WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications  
                       should implement Tool for the same.
INFO input.FileInputFormat: Total input paths to process : 1
INFO util.NativeCodeLoader: Loaded the native-hadoop library
WARN snappy.LoadSnappy: Snappy native library not loaded
INFO mapred.JobClient: Running job: job_201303281220_0016
INFO mapred.JobClient: map 0% reduce 0%
INFO mapred.JobClient: Task Id : attempt_201303281220_0016_m_000000_0, Status : FAILED
Error: org/jdom/JDOMException
INFO mapred.JobClient: Task Id : attempt_201303281220_0016_m_000000_1, Status : FAILED
Error: org/jdom/JDOMException
INFO mapred.JobClient: Task Id : attempt_201303281220_0016_m_000000_2, Status : FAILED
Error: org/jdom/JDOMException
INFO mapred.JobClient: Job complete: job_201303281220_0016
INFO mapred.JobClient: Counters: 7
INFO mapred.JobClient: Job Counters
INFO mapred.JobClient: SLOTS_MILLIS_MAPS=7541
INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots  
                       (ms)=0
INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots 
                       (ms)=0
INFO mapred.JobClient: Launched map tasks=4
INFO mapred.JobClient: Data-local map tasks=4
INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=0
INFO mapred.JobClient: Failed map tasks=1

我尝试下载 JDOM 1.x jar,但仍然没有帮助得到同样的错误。如果有人能提出一些建议,那将是一个很大的帮助。

注意:我可以运行各种示例,例如 word-count、PI,因此我认为我的集群建立正确。

提前致谢。

【问题讨论】:

  • 肯定 JDOMException 记录在某处!它说的是什么问题?
  • @rolfl:我昨天确实检查了任务和工作跟踪器的日志。我收到了错误,问题已解决。感谢您的回复。

标签: java hadoop xml-parsing mapreduce jdom


【解决方案1】:

您需要确认并确保您的输入文件每行有一个 XML 文档(例如,您的 XML 中没有换行符)?很可能 map() 方法是单行处理的(您使用的是 FileInputFormat),但嵌入的换行符这些行仅包含部分 XML 文档。

例如,如果您的文件如下所示:

<root
    arg1=""
    arg2="">

</root>

那么 map() 方法将为五行中的每一行调用一次。没有一行包含有效的 XML 文档。即使您的文件确实包含有效的 XML,也会抛出 5 次 DOM 解析错误

【讨论】:

  • 我确认输入文件每行有一个文档。你能建议点别的吗。感谢您的回复。
  • 在同一条船上,每行 xml 文档到底是什么意思?只是要明确一点,我们都在做同样的事情。
猜你喜欢
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 1970-01-01
相关资源
最近更新 更多