嗨,我已经在 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 格式编写这段特定的代码。我曾在 yahoo 上将此特定教程称为hadoop和各种教程。
所以我的问题是有人可以让我知道如何编写这样的 map reduce 代码,然后从中创建一个 jar 文件。
让我知道是否需要其他信息。我试图尽可能地短。
提前致谢。
注意:我知道这在 mapreduce 世界中听起来像是一个非常微不足道的问题,而我在这里展示的这个 XML 只是其中包含几个标签的单个标签的一个示例。