0

您好我正在尝试使用 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,所以我认为我的集群建立正确。

提前致谢。

4

1 回答 1

0

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

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

<root
    arg1=""
    arg2="">

</root>

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

于 2013-04-01T19:59:27.283 回答