【问题标题】:Advantages of using Spark with Cassandra使用 Spark 和 Cassandra 的优势
【发布时间】:2023-03-12 20:02:02
【问题描述】:

我看到Spark和Cassandra结合使用比较流行。

我知道 Cassandra 是一种 BigData 解决方案,它提供可靠性而非一致性,因此适用于实时系统。它还为查询提供了类似 SQL 的语法,但在后台管理其数据的方式与普通数据库非常不同。

另一方面,Hadoop 提供了一致性而不是可靠性,因此适用于分析系统。它的接口是 MapReduce,这对于现在来说非常慢而且级别太低。所以这就是 Sparks 的用武之地。Sparks 使用 Hadoop 的 HDFS,并用更好的架构取代了旧的 MapReduce,该架构更多地利用内存而不是硬盘,并公开了更好的接口,例如 RDD 和数据帧。

所以我的问题是: 为什么我要结合使用 Spark 和 Cassandra?这样做有什么好处?为什么不只使用其中之一?

据我了解,Cassandra 只会替换 HDFS,因此我的可靠性胜过一致性,而且我还必须使用 RDD/dataframes 而不是 CQL,并且 spark 会在后台生成 CQL,这给我更少的控制权。

【问题讨论】:

    标签: database hadoop apache-spark cassandra bigdata


    【解决方案1】:

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

    Cassandra 是一个 DBMS。您将在 Cassandra 中存储您的数据。

    的确,您可以使用 CQL 在 Cassandra 中处理数据,如果您可以使用 CQL,那么您可能不需要 Spark。但是,总的来说,Spark 是一种更强大的工具。在实践中,很多人使用 Spark 从外部源接收数据,对其进行处理并将已处理的数据存储在 Cassandra 中。

    【讨论】:

      【解决方案2】:

      HDFS 是一个“文件系统”,hadoop 位于它之上。

      还有许多数据库引擎运行在 hadoop 和 hdfs 之上,例如 hbase、hive 等并利用它的分布式架构。

      你不必在hadoop上运行spark,你可以独立运行。

      Cassandra 的 CQL 非常非常基础。您在最新版本中添加了基本聚合功能,但 Cassandra 并非专为分析工作负载而设计,您可能既难以运行分析查询,又会“扼杀”您的集群性能。

      你不能比较 HDFS 和 Cassandra,就像你不能比较 ntfs 和 mysql。 Cassandra 专为繁重的工作负载和基于 Dynamo (AWS) 和 BigTable(Google) 概念的轻松可扩展性而设计,每秒可以处理非常多的请求。有替代方案,在像 HBase 这样的 hadoop 上运行,Cassandra 在我见过的每个基准测试中都获胜(但不要相信基准测试,总是用你的数据和你的用例来测试它)。

      因此,Spark 试图解决的问题是在 Cassandra 中的数据之上执行分析查询。使用 Spark,您可以从许多来源(RDBMS、文件、hadoop 等)获取数据并针对该数据执行分析查询。

      还有,这个

      可靠性高于一致性,因此适用于实时系统

      大错特错。有许多实时系统需要 Cassandra 无法提供的一致性(不是最终的)、序列化、事务等......

      【讨论】:

        【解决方案3】:

        Cassandra 是 NoSQL 数据库,它的分析功能非常有限。
        例如,CQL 支持单个分区内的聚合,并且没有表连接。
        Spark 是流处理引擎,它可以使用来自 HDFS 或数据库的数据。所以如果你想对整个数据集中的数据进行深度分析,你必须使用 Spark。 您可以阅读有关 Cassandra 和大数据的更多信息here

        【讨论】:

          猜你喜欢
          • 2019-10-30
          • 1970-01-01
          • 2019-04-10
          • 1970-01-01
          • 2016-10-14
          • 2015-01-16
          • 2017-10-24
          • 2015-08-16
          • 2011-11-22
          相关资源
          最近更新 更多