0

私はHadoopに非常に慣れていません。2 つの異なるデータベース (MySQL と Postgres など) からデータを読み取る map-reduce ジョブを作成しようとしています。DBInputFormat を使用し、次のように JDBC ドライバーを指定することで、MySQL などの単一のデータベースから読み取ることができることを私は知っています。

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

しかし、複数のデータベースから読み取りたい場合、どうすればよいでしょうか? つまり、DBConfiguration で複数の JDBC ドライバーを指定するにはどうすればよいでしょうか?

4

2 に答える 2

1

もう 1 つの方法MultipleInputsは、2 つのマップのみのジョブを実行してから、それらのジョブからの出力を (ID マッパーを使用して) 入力として使用し、レデューサーで必要なマージ ロジックを実行する最後のジョブを実行することです。

于 2013-06-29T13:02:51.453 に答える
0

私の知る限り、これに対する OOB サポートはありません。別の方法として、RDBMS から生のテキスト ファイルとしてデータをエクスポートし、MultipleInputsを使用して必要なことを行うことができます。

まだ行っていない場合は、Apache sqoopを確認することもお勧めします。

于 2013-06-29T00:43:53.823 に答える