2

使用 hadoop 我尝试在单独的节点中拆分以下 xml

<?xml version="1.0" encoding="UTF-8" ?>
<pages>
    <page>
            <title>Sourav</title>
    </page>
    <page>
            <title>Gaurav</title>
    </page>
    <page>
            <title>sachin</title>
    </page>
    <page>
            <title>Rahul</title>
    </page>
</pages>

喜欢

<page>
        <title>abc</title>   
</page>

我通过以下命令运行它

hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.0.1.jar -inputreader "StreamXmlRecordReader,begin=<page>,end=</page>" -input /usr/root/xml  -output /usr/root/xmloutput

但是我得到了以下输出而不是四个单节点

<page>
    <title>Sourav</title>
</page> 
<page>
    <title>Gaurav</title>
</page> 
<page>
    <title>sachin</title>
</page> 
<page>
    <title>Rahul</title>
</page> 

<page>
    <title>sachin</title>
</page> 
<page>
    <title>Rahul</title>
</page> 

难道我做错了什么?感谢您对我做错了什么的任何见解。

4

1 回答 1

2

不,你没有做错任何事。

这是 Hadoop Streaming 中一个恼人的错误。

https://issues.apache.org/jira/browse/MAPREDUCE-577

这是 0.20 中的一个已知错误,但他们说它已在 0.22 中修复。我不知道,但不幸的是它在 1.0.4 中再次被破坏。

同时,您可以将您的 xml 预处理为更好的流式处理。

于 2013-01-09T09:07:09.430 回答