0

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

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

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

4

2 回答 2

1

另一种选择MultipleInputs是运行 2 个仅映射作业,然后运行一个最终作业,将这些作业的输出用作输入(使用身份映射器)并在减速器中执行您需要的任何合并逻辑。

于 2013-06-29T13:02:51.453 回答
0

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

我还建议你看看Apache sqoop,以防你还没有完成。

于 2013-06-29T00:43:53.823 回答