从单个作业中的多个数据库中读取 - hadoop

时间:2013-06-29 00:01:41

标签: database jdbc hadoop mapreduce

我对Hadoop很新。我正在尝试编写一个map-reduce作业,它从两个不同的数据库(比如MySQL和Postgres)中读取数据。我知道我们可以使用DBInputFormat从单个数据库(例如MySQL)读取数据,并通过如下指定JDBC驱动程序来读取:

DBConfiguration.configureDB(conf, “com.mysql.jdbc.Driver”, “jdbc:mysql://localhost/mydatabase”); 

但是,如果我们想要从多个数据库中读取,我们怎么能这样做呢?换句话说,我们如何在DBConfiguration中指定多个JDBC驱动程序?

2 个答案:

答案 0 :(得分:1)

MultipleInputs的另一种替代方法是运行2个仅映射作业,然后是最终作业,将这些作业的输出用作输入(使用标识映射器),并执行reducer中所需的任何合并逻辑。

答案 1 :(得分:0)

AFAIK,没有OOB支持。作为替代方案,您可以将RDBMS中的数据导出为原始文本文件,然后使用MultipleInputs执行任何操作。

如果您尚未完成,我还建议您查看Apache sqoop