-3

Hive クエリを使用して JSP から HBase データにアクセスしています。現在、Hbase はテラバイト単位のデータのような巨大なデータを格納できるためです。データが大量にある場合、(マップ削減タスクに変換される) ハイブ クエリには数分かかります。 JSPページは、データを表示するために10分待ちます.戦略は何ですか.これは正しいアプローチですか.そうでない場合は、JSPで巨大なhbaseデータを表示するための最良のアプローチは何ですか.

4

1 に答える 1

2

Hive/Any hadoop map-reduce システムは、オフライン バッチ処理用に設計されています。JSP から Hive クエリを送信し、データの準備が整い、フロントエンドに表示されるまで任意の時間待機することは、明確に禁止されています。クラスターが超ビジーの場合、指定された時間内にジョブがスケジュールされていない可能性があります。

フロントエンドで Hbase から正確に何を表示したいですか?

  1. それがテーブルからの行のセットであり、行が何であるかを知っている場合 (行キーを持っているか、アプリケーションが実行時に計算できることを意味します)、それらの行をフェッチして表示します。

  2. SQL に似た操作 (結合/選択など) を行う必要がある場合は、HBase は No-SQL システムであり、アプリケーションでこれらの操作を実行してから、行キー。

例: 2 つの HBase テーブルがある場合、Dept (行キーとしての dept Id と、カンマで区切られた empIds のリストを含む文字列列 (employees)) と Employee( 行キーとしての emp Id と、列 Name, Age, Salary) とします。部門で最も給与の高い従業員を見つけるには、次のようにする必要があります。

a. Dept テーブルから行を取得します (dept Id を使用)

b. employees 列から empIds のリストを繰り返します。

c. 各反復で、Employee テーブルから行を取得します (empId 行キーによる)

そして最大を見つける

はい、HBase は TB のデータを処理できますが、JSP を使用してフロントエンドでそれほど多くのデータを表示する必要はほとんどありません。バッキング HBase テーブルははるかに大きいですが、データの一部のみに関心がある可能性が高いと思います。

于 2012-08-27T08:20:09.080 に答える