2012-02-24 11 views
1

HBaseの使い方を学ぶためのアプリケーションを開発したいと考えています。 HBaseを使った良い学習プロジェクトを開発するために、どのような技術を使用できますか?私はRuby on RailsやJava EEやSpringのようなものを使いたいと思っています。どのようなアーキテクチャができますか?HBaseプロジェクト - 技術とアーキテクチャ

答えて

1

HBaseはHDFS(Hadoop Distributed File System)の上に構築されているので、非常に大きな(TBまたはPB)データセットを格納するために使用されることが期待されます。したがって、通常のアプリケーション(コンソールまたはデスクトップまたはWebアプリケーション)からHBaseを使用することは良い考えではありません。なぜなら、データセットに対して並列処理を行うことができるからです。これは、パフォーマンスとスケーラビリティが優れている場合に必要ですそのような大きなデータセット。並列処理を行わないと、そのような大量のデータに対して1つのジョブを完了するまでに数日かかることがあります。 HadoopのMapReduceフレームワークは、この問題を正確に解決します。 MapReduceを使用してHBaseを読み書きすることができます。これにより、アプリケーションのパフォーマンスが向上します(ジョブは数日から数時間に減少します)。

したがって、IMO、MapReduceフレームワークとHBaseを併用することをお勧めします。これにはJavaまたはRoRを使用できます。 MapReduceフレームワークはJavaで開発されていますが、他の言語からもStreaming API経由で使用できます。 RoRはHadoopとの統合も強化しています。

0

HBaseで動作するアプリケーションの技術問題ではないと思います。主な学習曲線(HadoopとHBaseの管理以外)は、RDBMSとHBaseの間のパラダイムシフトを理解することです。
私はあなたが持っている(または想像することができる)既存のRDBMSデザインを取ってHBASEにマップすることを提案します。あなたが渡さなければならない主要なテスト - あなたがRDMSで実行するために使用したすべてのクエリが、効率的な効率で可能であることを確認する。これを行うことで、HBaseとリレーショナルデータベースの概念の違いを理解できます。

関連する問題