【发布时间】:2013-07-24 16:45:57
【问题描述】:
这里的第一个问题...和学习hadoop...
过去两周我一直在尝试了解有关 hadoop 的一切,但似乎每座山背后都有一座山。
设置如下:
- 大量(100 万)个小 (
- 每个文件都是一个记录/记录
- 伪分布式 Hadoop 集群 (1.1.2)
- 使用旧的 mapred API(可以更改,如果新 API 支持所需的功能)
我发现 XmlInputFormat ("Mahout XMLInputFormat") 是读取文件的一个很好的起点,因为我可以将整个 XML 文档指定为
我的理解是 XmlInputFormat 将负责确保每个文件都是它自己的记录(因为每个文件/记录存在 1 个标签)。
我的问题是这样的:我想使用 Hadoop 来处理每个文档,搜索信息,然后,针对每个文件/记录,重写或输出添加了新 xml 标签的新 xml 文档。
不怕阅读和学习,但是一个可以玩的骷髅真的会帮助我“玩”和学习hadoop
这是我的司机:
public static void main(String[] args) {
JobConf conf = new JobConf(myDriver.class);
conf.setJobName("bigjob");
// Input/Output Directories
if (args[0].length()==0 || args[1].length()==0) System.exit(-1);
FileInputFormat.setInputPaths(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
conf.set("xmlinput.start", "<document>");
conf.set("xmlinput.end", "</document>");
// Mapper & Combiner & Reducer
conf.setMapperClass(Mapper.class);
conf.setReducerClass(Reduce.class);
conf.setNumReduceTasks(0);
// Input/Output Types
conf.setInputFormat(XmlInputFormat.class);
conf.setOutputFormat(?????);
conf.setOutputKeyClass(????);
conf.setOutputValueClass(????);
try {
JobClient.runJob(conf);
} catch (Exception e) {
e.printStackTrace();
}
}
【问题讨论】:
标签: java xml apache hadoop mapreduce