こんにちは、VMware に仮想分散モードで hadoop-0.20.2-cdh3u5 をインストールしました。この確立された環境を使用して XML ファイルを解析したいと考えています。map/reduce コードを記述し、それらを.jarファイルとしてクラスターにエクスポートし、クラスター上で実行することで、これを行うことができます。私が理解できないのは、このための Java 解析コード (SAXON パーサーを使用) を map/reduce クラスに入れ、出力で csv ファイルを生成する方法です。
だから私はこの解析コードを持っています:(ここでSAXonパーサーを使用しています)
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class JAXBC {
private JAXBContext context;
private Unmarshaller um;
public JAXBC() throws JAXBException
{
// creating JAXB context and instantiating Marshaller
JAXBContext context = JAXBContext.newInstance(ConnectHome.class);
// get variables from the xml file
um = context.createUnmarshaller();
}
public ConnectHome convertJAXB(String strFilePath) throws FileNotFoundException,
JAXBException
{
return ((ConnectHome) um.unmarshal(new FileReader(strFilePath)));
}
}
私はこのような XML を持っています: ( ここにサンプル要素 )
<Course>
<ID>1001</ID>
<Seats>10</Seats>
<Description>Department: CS , Faculty: XYZ</Description>
<Faculty>
<Name>XYZ</Name>
<Age>30</Age>
</Faculty>
</Course>
今私の問題は、この特定のコードを map/reduce 形式で記述する方法を理解できないことです。私はこの特定のチュートリアルを Hadoopと yahoo のさまざまなチュートリアルと呼んでいました。
だから私の質問は、そのようなマップ削減コードを書き、そこからjarファイルを作成する方法を教えてもらえますか?
他の情報が必要な場合はお知らせください。できるだけ短くしようとしました。
前もって感謝します。
注: これは mapreduce の世界では非常に些細な質問のように聞こえますが、ここで示したこの XML は、内部にいくつかのタグを含む単一のタグの例にすぎません。