我正在尝试使用Hadoop Map-Reduce,在我的测试中,我能够将reducer的输出存储到HBase中。但是,我想将数据写入mysql数据库而不是HBase。 Mappers仍然会从HBase读取他们的输入数据。我已经找到了这个,但它需要在输入和输出都使用MySQL,而我只在输出时需要它。此外,上面link使用org.apache.hadoop.mapred包中的一些不推荐使用的类,现在可以使用新包org.apache.hadoop.mapreduce,但是我无法使用这个新包找到任何教程到现在为止。
答案 0 :(得分:1)
我已经找到了这个,但它需要在输入和输出都使用MySQL,而我只在输出时需要它。
InputFormat(DBInputFormat)独立于OutputFormat(DBOutputFormat)。应该可以从Mapper中的HBase读取并写入Reducer中的DB。
使用新的MR API设置Job#setInputFormat和Job#setOutputFormat,旧的MR API将JobConf#setInputFormat和JobConf#setOutputFormat设置为适当的输入/输出格式。这两种格式都不一样。如果需要,应该可以从映射器中的XML读取并写入Reducer中的Queue。
此外,上面的链接使用org.apache.hadoop.mapred包中的一些不推荐使用的类,现在可以使用新的包org.apache.hadoop.mapreduce,但是我无法找到使用这个新包的任何教程。现在
如果您对旧API感到满意,请继续使用它。新API和旧API之间的功能有not much difference。旧API和新API有两个DBInputFormat。确保不要将旧/新的InputFormats与旧的/新的MR API混合使用。
以下是新API的tutorial。