2012-04-05 4 views
2

私はまだhadoopには新しく、いくつかのサンプル演習で少しは学んでいましたが、実際にどのように使用されているのかという質問がありました。多くのアプリケーションは、バッチ処理(ログファイルデータなど)に適しているようですが、hbaseがここにどのように適合するかはわかりません。Hadoop Hbase workflow

ログファイルのデータをhbaseに保存してから、別のストレージ形式に処理して出力するのは一般的ですか? rawログファイルをhadoopに渡し、出力をhbaseに保存する方が一般的ですか?私の本当の質問は、典型的には、hbaseがhadoopの入力または出力、あるいはその両方として使われていると思いますか?

答えて

4

HBaseは、データへのランダムな低レイテンシのアクセスが必要な場所であればどこでも使用できますが、残りのHadoopエコシステムの大半はバッチ指向です。

ログ解析の例を使用するには、MapReduce経由でHDFSに保存されているログファイルを処理できますが、それでは何ですか?おそらく、あなたは時間の経過に伴う交通パターン(分、時間、日、何でも)を見たいと思うでしょう。タイムスタンプを行キーとしてHBaseに結果を格納すると、特定の日付範囲を効率的にクエリできます(たとえば、「先週のすべてのデータを表示する」など)。 MapReduceは先月、昨年などのすべてのデータをスキャンする必要はないため、MapReduceを使用することはできません。

+0

これは意味があります。入力データをhbaseに保存したい場合がありますか? –

+0

確かに、例えば複数のマシンを書いている場合、HBaseはそれを扱うことができます。ログを処理するためにMapReduceジョブを実行している場合、HBase RegionServersでMappersとReducers(入力と出力)の両方を実行すると、それらのジョブはより効率的になります。なぜなら、データはコピーする必要がないからですターゲットストレージノードへのネットワーク。 –

+0

クール、ありがとう。入力を気に入ってください。 –

2

Flumeは、多くの人がログファイルを作成して、そのデータが生成されたときにリアルタイムで処理する方法です。各ログファイルからソースを作成し、HBaseインスタンスに同期させることができます

HBaseの上にクラスタメトリックを格納するための非常に優れたシステムがあるので、OpenTSDBも参照してください。インフラストラクチャの一部を再利用してログ分析を行うことができます。

関連する問題