web-dev-qa-db-ja.com

Webアプリケーションにhadoopを使用する方法は?

私はソーシャルネットワーキングWebベースのアプリケーションに取り組んでいます。これは、codeigniterMVCフレームワークを備えたデータベースにApacheWebサーバーとMYSQLサーバーを使用しています。このアプリケーションにHadoopを統合する方法と、map-reduceプログラムを作成する方法がわかりません。

16
Rashmi

Hadoopとmap-reduceは、Webアプリケーションと直接の関係はありません。 Webアプリケーションをユーザー入力(Web要求)に(迅速に)応答するものとして理解している限り、HadoopをWebアプリケーションに統合しないでください。

Hadoopとmap-reduceは、大規模なデータセットで実行されるアルゴリズムで、それらのデータセットからデータ/知識を変換/抽出するために非常に役立ちます。

14
mkro

Hadoopが現在主に「オフライン分析」に使用されていることは事実ですが、Webプロジェクトにも役立つ可能性があります。たとえば、推奨事項や提案を事前に計算して、Webサイトのユーザーに提供する場合などです。

もう1つの使用例は、複数のデータソースからETLを実行して、Webサイトの転置インデックスを生成できるようにすることです(たとえば、大量の入力データがある求人/自動車/賃貸物件のようなWebサイト)。

Webサイトが少量のデータを管理している場合ではなく、「ビッグデータ」の問題がある場合は常にHadoopについて考えてください。

Hadoopを使用してこの種の問題に取り組むことには、いくつかの長所と短所があります。明らかな利点は、あらゆる種類のバッチプロセス(前述の例のような)を透過的にスケーリングできることです。欠点は、リアルタイムではないことです。Hadoopを使用して5秒ごとにWebサイトを更新することはできません。

Hadoopには、ソーシャルネットワークスタイルのアプリケーションに対して2つの「古典的な」使用法があると思います。

1つは、メッセージングやその他の動的情報を格納するためのHBASEの使用です。 MySQLをこの種のNoSQLソリューションに完全に置き換えるために、HBASEにユーザープロファイルを保存することも検討できます。

2つ目は、ネットワークの分析にHadoopMapReduceを使用することです。そのような分析の良い例は、友達の提案を探すことです。

3
David Gruzman

はい、Apache hadoopをバックエンドとして使用してWebアプリケーションを作成することは可能です

Apache Hiveとpigを使用してWebアプリケーションを作成し、カスタムマッパーとリデューサーを記述してudfとして使用できますが、個人的な経験は遅いです。データが非常に少ない場合は、他のデータベースを使用して分析を行うことをお勧めします。 、私はsparkがより良い応答時間のための解決策です。

2

Hadoopを使用してデータを分析し、その結果をmysqlデータベースに取り込みます。次に、それをWebアプリケーションで使用します。

1
krishnan
0
Igorock