2012-11-01 5 views
6

私は最近、Cassandraが時間ベースのイベントをイベントタイプごとにカスタムttlsで保存することに合っていました(もう1つの解決策は、hadoopに保存して手動で簿記することです) IMHOは非常に複雑なアイデア)、またはhbaseに切り替える)。 問題は、Datastax Enterprise Editionなしで、cassandra MapReduceサポートがすぐに使えることです。Cassandras Map Reduce Support

CassandraFSに多額の投資をしたようですが、通常のPig CassandraLoaderが積極的に管理され、実際にはスケールされているかどうかは疑問です。(スライスの行を繰り返すだけです。 これは何百万行にも及んでいますか?

答えて

-2

なぜhbaseですか? Hbaseはtimeseriesデータに適しています。非常に小さなクラスタに数十億行を簡単に配置し、WALを有効にした小さな3ノードクラスタ(最大50MB/s)で最大500k行/秒を取得できます。

  1. カサンドラは、あなたが実際に(十億行の場合には、あなたの修復が永遠に働くだろうと、想像する)キーの量によって制限: カサンドラは、いくつかの欠点を持っています。したがって、スキーマを設計します。スキーマは、たとえば1時間という時間を「シャード」し、実際のタイムスタンプは列として配置されます。しかし、そのようなスキームは、「巨大な列」のリスクが高いためにうまく拡張できません。
  2. その他の問題 - よくバランスを取ることができないため、オプションではないオーダー分割を使用することを除いて、cassandraのデータの範囲を縮小することはできません。
+0

私はすでにプロジェクトでcassandraを使用しているので、実際に新しい技術を導入したくないからです。 – Tobias

+0

良い点。常にすべてのデータを処理することができれば - これはうまくいくはずですが、データが大きくなる場合は、マップの負荷を軽減するために、ワークロードの保存量を増やすことを再検討することをおすすめします。 – octo

+0

これはどういう意味ですか?多くの(ほとんどの?)カザンドラクラスターは、何十億もの行をサポートしています。あなたは修理に言及しますが、それはもちろん同様に配布されます。 – jbellis

1

ランダムパーティショナーを使用してマップ/リダクションすることはできますが、取得するキーはランダムな順序です。あなたはたぶん、cassandraでCL = 1を使用したいので、map/reduceを実行しながら毎回2つのノードから読み込む必要はなく、ローカルデータを読み込む必要があります。私は豚を使用していない。

+0

CassandraのPigサポートは、ColumnFamilyInputFormatと-OutputFormatを使用します。だから、あなたがハープマップでやっていることができないことは、カッサンドラと豚ではできないことにかなりよくうまく対応します。 –

+0

これは実際にはランダムパーティショナーを使用して高速ですか?私はそれがちょうどこれのような何かをすると思いますか? http://stackoverflow.com/questions/8418448/cassandra-hector-how-to-retrieve-all-rows-of-a-column-family - 私は100 mioの行を手動で一度反復しようとしましたが、それは決して実際に開始されませんでしたそれが最初の範囲のライスクエリーを送った後。 – Tobias

+0

そのリンクはmap/reduceとmap/reduceのようには見えません。MapperとReducerなどを実装しています...もう一度設定する必要があり、以前のプロジェクトのコードはありません。それらのすべてが並行して実行されているので...スタートは、各タスクトラッカーにコードを配信するのと同じように、ハープアウトのように遅いです。 –

関連する問題