概要:
次のことは可能ですか。
- «MongoDB Connector for Hadoop» を使用して Hadoop にデータをインポートします。
- Hadoop MapReduce で処理します。
- 単一のトランザクションで Sqoop を使用してエクスポートします。
MongoDB で Web アプリケーションを構築しています。MongoDB はほとんどの作業でうまく機能しますが、一部の部分ではより強力なトランザクション保証が必要であり、そのために MySQL データベースを使用しています。
私の問題は、データ分析のために大きな MongoDB コレクションを読み取りたいのですが、コレクションのサイズが大きいため、分析ジョブの処理に時間がかかりすぎることです。残念ながら、MongoDB に組み込まれている map-reduce フレームワークはこのジョブにはうまく機能しないため、Apache Hadoopで分析を実行することをお勧めします。
MongoDBからデータを読み取り、Hadoop で MapReduce を使用して処理し、最終的に結果を MongoDB データベースに出力する«MongoDB Connector for Hadoop»を使用して、MongoDB から Hadoop にデータを読み取ることができることを理解しています。
問題は、結果を他の MySQL テーブルとマージする必要があるため、MapReduce の出力を MongoDB ではなく MySQL データベースに入れたいことです。
この目的のために、Sqoop は Hadoop MapReduce の結果を MySQL にエクスポートできることを知っています。
最終的には、MongoDB データを読み込んで Hadoop で処理し、最終的に結果を MySQL データベースに出力したいと考えています。
これは可能ですか?これを行うために利用できるツールはどれですか?