2016-10-12 1 views
0

私はHadoopの世界に慣れていません。私は現在のJMSキューのデータをHadoopクラスタに取り込むためのソリューションを研究することを任されています。JMSキューからHadoop Hbaseにメッセージを保存すると良い解決策が得られますか?

これまでのところ、データの摂取の専門家になるための私の探求で...私は数週間、本とチュートリアルを通ってウェブを洗ってきました。私は、私たちのキューの1つを聞き、着信メッセージをHBase HTableに書き込む単純なJavaサービスを作成しました。

この証明を完了した後、コミュニティ/ Hadoop/Hbase/data摂取の専門家に質問したい質問が2つあります。私が少し前に私のシナリオ/スコープを説明してくれる前に、私たちは、私たちは希望

  • リアルタイムに近いとニーズ
  • これらのメッセージはどこでも1メガバイトから20メガバイトの範囲とすることができるJSONオブジェクトである各
  • たちのJMSキュー
  • から一日あたり約3万のメッセージを受信

    • これらのメッセージをHadoopに保存して、今後の分析や過去の履歴参照のために保存してください。
    • 受信メッセージを解析する必要はなく、保存するだけです。 (理由はメッセージの取り込み中にボトルネックが発生しない)

    私の "proof of concept" Javaサービスでは、このソリューションが、特に本番環境で私のケースのシナリオに最適かどうかは分かりません。

    1. これは私のケースのシナリオに適したアプローチですか?
    2. もしそうでなければ、私は何をしようとしているのですか?
    3. この過剰殺戮にHBaseを使用していますか?
    4. 1つのセルに最大20 MBを節約するのはいい考えですか?特に、パージを行わずにこのテーブルにメッセージを継続的に追加する予定がある場合は、

    ありがとう!

  • 答えて

    0

    これは私のケースのシナリオに適したアプローチですか? もしそうでなければ、私がやろうとしていることには他にどのような技術が適しているでしょうか?

    Flumeは別のオプションです。これは、jmsソースとHBase/Hiveシンクを提供します。

    この過酷な状態でHBaseを使用していますか?

    1日の入力に基づいて一定期間にわたって多数のメッセージが実行された場合、メッセージの数が多くなることはありません。 HBaseにメッセージを格納する目的は、別のストアに再度解析する場合です。
    必要に応じて、別のサービス(例:mapreduce)がjmsメッセージを消費して処理し、HBaseではなく最終目的地に出力できます。オリジナルのメッセージを長期間保管する必要がない限り、

    +0

    あなたのために@techuserを入力していただきありがとうございます。 – monkeymanjojo

    +0

    目的/大きな画像、これらの元のメッセージを生の形式でHadoopにキャプチャ/保持する必要があるため、選択したメッセージや希望の日付範囲を今後システムやモデルに戻すことができます。すべてのメッセージがそれぞれ20 MBである最悪のシナリオを想定してみましょう。したがって、20 MB x 30,000 x 356 = 213,600,000 MB(213.6テラバイト)。毎年最低で2倍になるでしょう。 HTableは特にこのサイズのテーブルを20 MB(MOB対応)の行セルで扱うことができますか? – monkeymanjojo

    +0

    クラスタは水平方向に成長できます。 hadoopクラスタにノードを追加する必要があります。 – techuser

    関連する問題