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

しかし、4つの単一ノードの代わりに、次の出力が得られました

<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 ストリーミングの厄介なバグです。

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

これは 0.20 の既知のバグですが、0.22 で修正されたと言われています。それについてはわかりませんが、残念ながら 1.0.4 で再び壊れています。

それまでの間、xml を前処理して、ストリーミング用により良いものにすることができます。

于 2013-01-09T09:07:09.430 に答える