2017-03-13 21 views
0

SparkとCassandraの組み合わせが比較的人気が高いことが分かりました。CassandraでSparkを使用するメリット

私はCassandraが一貫性よりも信頼性が高く、リアルタイムシステムに適したBigDataソリューションであることを知っています。それはまた、クエリのためのSQLのような構文を提供しますが、フードの下では、通常のDBとは非常に異なるデータを管理します。

一方、Hadoopは信頼性の一貫性を提供するため、分析システムに適しています。そのインタフェースはMapReduceですが、これは現在かなり遅く、低レベルです。 SparksはHadoopのHDFSを使用しています。古いMapReduceを、ハードディスクよりもメモリをより有効に活用し、RDDやデータフレームなどの優れたインタフェースを提供する優れたアーキテクチャに置き換えています。

私の質問は なぜカッサンドラと組み合わせたスパークを使用したいのですか?それの利点は何ですか?なぜ彼らの1つだけを使用しないのですか?

私が理解する限り、CassandraはHDFSを置き換えるだけなので、一貫性に対する信頼性があり、CQLではなくRDD/dataframesを使用しなければならず、sparkはCQLを生成し、私にはより少ない制御しか与えられない。

答えて

2

HDFSは、ファイルシステムであり、その上にハーフープがあります。

hbaseやhiveなどのhadoopやhdfsの上で実行され、その分散アーキテクチャを利用するデータベースエンジンも多数あります。

あなたはhadoopでsparkを実行する必要はありません。あなたはそれを単独で実行することができます。

CassandraのCQLは非常に、非常に基本的です。最新のバージョンでは基本的な集計機能が追加されていますが、Cassandraは分析ワークロード用に設計されていないため、分析クエリを実行するのに苦労し、

ntfsとmysqlを比較できないように、HDFSとCassandraを比較することはできません。 Cassandraは、Dynamo(AWS)とBigTable(Google)のコンセプトに基づいた大量のワークロードとスケーラビリティを考慮して設計されており、非常に多くのリクエストを処理できます。 HBaseのようなhadoopで実行される代替案があります.Cassandraは私が見たすべてのベンチマークで勝ちます(ただし、ベンチマークは信じていません。常にデータでテストし、ユースケースをテストします)。

スパークが解決しようとしていることは、カッサンドラに座っているデータの上に分析的なクエリを実行していることです。 Sparkを使用すると、多くのソース(RDBMS、ファイル、ハープなど)からデータを取得し、そのデータに対して分析クエリを実行できます。また

、一貫性に対するこの

信頼性は、したがって、

はそう間違っているリアルタイムシステムのために収まります。カサンドラが提供することができない一貫性(最終的なものではない)、シリアライゼーション、取引などを必要とするリアルタイムシステムが多数あります。

2

スパークはデータ処理フレームワークです。あなたはプロセスにSparkでデータを送信します。

カサンドラはDBMSです。 あなたのデータはカサンドラに保存されます。

CassandraのデータをCQLで処理することは可能ですが、CQLを使用して逃れることができれば、おそらくSparkは必要ありません。しかし、一般的にSparkはもっと強力なツールです。実際には多くの人々がSparkを使って外部ソースからデータを受信し、処理し、既に処理されたデータをCassandraに保存します。

0

カサンドラはNoSQLデータベースであり、分析機能には非常に制限されています。
たとえば、CQLは単一パーティション内での集計をサポートしており、テーブル結合はありません。
Sparkはストリーミング処理エンジンであり、HDFSまたはデータベースからのデータを使用できます。したがって、データセット全体のデータを深く分析したい場合は、Sparkを使用する必要があります。 カサンドラとビッグデータの詳細はこちらhere

関連する問題