在一个作业中读取多个数据库-hadoop



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

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

然而,如果我们想从多个数据库中读取,我们该如何做到这一点?换句话说,我们如何在DBConfiguration中指定多个JDBC驱动程序?

MultipleInputs的另一种选择是运行两个仅映射的作业,然后运行最后一个作业,使用这些作业的输出作为输入(使用标识映射器),并在reducer中执行所需的任何合并逻辑。

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

我还建议您看看Apache sqoop,以防您还没有做过。

相关内容

  • 没有找到相关文章

最新更新