2016-07-08 11 views
0

私は新しいプロジェクトでHadoopを使用します。プロジェクトのコンセプトは、次の画像のようなものです。 enter image description hereプロジェクトでのHadoopの実際の使用

ユーザーは、いくつかのデータ(ログ)を生成するデバイスを持っています。ユーザーは、デバイスからファイルとしてデータを取得し、それをweb app/hadoopにアップロードすることができます。私はRuby on Railsを使ってWebアプリケーションを構築します。

私はHadoop(HDFS、Mappers、Reducers)の基本を知っていますが、実用的な方法でHadoopを使用する方法はわかりません。私はいくつかのヒントを最初に得てから、プロジェクトのコンポーネントを収集されたヒントに調整したいので、プロジェクトはただのコンセプトにすぎません。

私の主要な考慮事項は約されています

  1. のWebアプリはHadoopのと同じ場所に格納する必要がありますか? (同じサーバー/クラウド/サービスプロバイダ)
  2. ファイルをアップロードするには?ファイルをアップロードするためのWebアプリケーションのフォームにすることができますか?それとも、デスクトップアプリケーションを作成してファイルをアップロードする方が良いですか(ファイルサイズ:100MB〜1GB)?
  3. デスクトップアプリケーションの場合は、データをHadoopに直接送信するか、何らかの方法でWebアプリケーションを送信する方が良いでしょうか?
  4. 外部リソース(私のWebアプリケーションまたはデスクトップアプリケーション)からのアップロードに役立つフレームワーク/ツール/ API /リソースを教えてください。
  5. Hadoopデータを正しく使用するにはどうすればよいですか?ユーザーのファイルがHadoopにあるとしましょう。私は出力ファイルを生成するもの(またはHBaseにいくつかのデータを入れます - 私は正しいでしょうか?)をこのファイル上でMappersとReducersを実行できることを知っています。このデータを取得するには、適切な出力ファイルが必要か、HBaseから「SELECT」を取得するのがいいでしょうか?ジョブが完了したらHadoopに外部Webアプリケーションに情報を送信するトリガーが含まれていますか?

このトピックのすべてのヒントがあります。

+0

なぜHadoopが必要なのですか?たくさんのデータがありますか? –

+0

Hadoopはリアルタイムではありません。 WebアプリケーションからHDFS(Hadoop)のデータをクエリするのは難しいです。通常、処理されたデータはHadoopからエクスポートされます。 –

+0

良い点はリアルタイムではありませんが、今は問題ではありません。 – nicq

答えて

1
  1. webappを同じマシンで実行しないでください。 Hadoopクラスタに専用のコンテナマシンを使用する方が良いでしょう。
  2. HDFS(Hadoop filesystem)には、読み書きするAPIがあります。たとえば、WebHDFSがあります
  3. クライアントを正しく認証できるという理由から、Webアプリケーションを送信するほうが常に良いです。
  4. 私はこれを知りません。私の意見では、アップロードは簡単で、これをアーカイブするライブラリは一切必要ありません。
  5. HDFSのデータを直接照会しないでください。その後、別のストレージにエクスポートします。あなたが直接それを使用することを主張する場合、大きな問題はありません。ちょうどWebHDFSを使用してください。
+0

素晴らしい!答えをありがとう!ユーザーがファイルをアップロードできるデスクトップアプリケーションを作成する場合は、このファイルをWebアプリケーションからHadoopに送信する方が良いか、それともHDFSに直接送信する方が良いでしょうか? – nicq

+0

です。あなたは彼にHDFSへの直接アクセスを与えるのに十分なユーザーを信頼しますか?通常の答えはノーです。しかし、内部使用のためにアプリケーションを構築する場合、HDFSに直接アップロードする方が簡単かもしれません。 –

関連する問題