与Cassandra一起使用火花的优势



我已经看到使用火花与卡桑德拉的组合相对流行。

我知道Cassandra是一个BigData解决方案,可提供对一致性的可靠性,因此适合实时系统。它还为查询提供了类似SQL的语法,但在引擎盖下,其数据与普通dB的管理非常不同。

另一方面,

Hadoop提供了对可靠性的一致性,因此适合分析系统。它的界面是MapReduce,如今非常缓慢且过低。因此,这就是Sparks进入的地方。Sparks使用Hadoop的HDF,并用更好的架构代替了旧的MapReduce,它可以更优势,而不是硬盘而不是硬盘,并揭示了更好的接口,例如RDD和DataFrames。

。 。

所以我的问题是:我为什么要使用与卡桑德拉(Cassandra)结合使用的火花?这有什么优点?为什么不只使用其中之一?

据我了解,

Cassandra只会替换HDF,因此我对一致性具有可靠性,而且我还必须使用RDD/DataFrames而不是CQL,而Spark在引擎盖下会产生CQL,这将在引擎盖下生成CQL,给我更少的控制。

Spark是一个数据处理框架。您将使用Spark Process 使用Spark。

Cassandra是DBM。您将转到商店您的数据在Cassandra中。

的确,您可以使用CQL在Cassandra中处理数据,如果您可以摆脱CQL,则可能不需要火花。但是,通常,Spark是一种更强大的工具。实际上

HDFS是"文件系统",hadoop坐在它的顶部。

也有许多数据库引擎在Hadoop和HDF之上运行,例如HBase,Hive等,并利用其分布式体系结构。

您不必在Hadoop上运行Spark,您可以独立运行它。

Cassandra的

CQL非常非常基础。您在最新版本中添加了基本的聚合功能,但是Cassandra并不是为分析工作负载而设计的,并且您可能都很难运行分析查询,并将"杀死"您的群集性能。

您无法比较HDFS和Cassandra,就像您无法比较NTFS和MySQL一样。卡桑德拉(Cassandra)专为基于发电机(AWS)和Bigtable(Google)概念的繁重工作量而设计,并且可以每秒处理大量的请求。还有其他选择,在Hadoop上奔跑,Cassandra在我看到的每个基准中获胜(但不相信基准测试,请始终使用您的数据和用例对其进行测试)。

因此,Spark试图解决的问题是在卡桑德拉(Cassandra)的数据之上执行分析查询。使用Spark,您可以从许多源(RDBMS,Files,Hadoop等)中获取数据,并执行分析查询与数据。

另外,这个

一致性的可靠性,因此适合实时系统

是如此错误。卡桑德拉无法提供的许多实时系统需要一致性(最终),序列化,交易等。

cassandra是NOSQL数据库,并且在分析的功能方面非常有限。
例如,CQL支持单分区内的聚合,并且没有表连接。
Spark是流媒体处理引擎,它可以使用HDFS或数据库中的数据。因此,如果您想对整个数据集中的数据进行深入分析,则必须为其使用Spark。您可以在此处阅读有关Cassandra和大数据的更多信息

最新更新