首页 文章

使用Spark和Cassandra的优点

提问于
浏览
0

我已经看到使用Spark和Cassandra的组合相对流行 .

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

另一方面,Hadoop提供了可靠性的一致性,因此适用于分析系统 . 它的界面是MapReduce,它现在非常慢而且太低了 . 所以这就是Sparks的用武之地.Sparks使用Hadoop的HDFS并用更好的架构替换旧的MapReduce,它更多地利用了内存而不是硬盘,并且暴露了更好的接口,如RDD和数据帧 .

所以我的问题是:为什么我要将Spark与Cassandra结合使用?那有什么好处?为什么不只使用其中一个呢?

据我了解,Cassandra只会取代HDFS,所以我的可靠性高于一致性,而且我还必须使用RDD /数据帧而不是CQL,而spark会在引擎盖下产生CQL,这让我更少控制 .

3 回答

  • 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无法提供的一致性(非最终),序列化,交易等......

  • 2

    Spark是一个数据处理框架 . 你将使用Spark来获取数据 process .

    Cassandra是一名DBMS . 您将在Cassandra中找到您的数据 store .

    确实,您可以使用CQL处理Cassandra中的数据,如果您可以使用CQL,则可能不需要Spark . 但是,一般来说Spark是一种更强大的工具 . 在实践中,很多人使用Spark从外部源接收数据,处理它并在Cassandra中存储已处理的数据 .

  • 0

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

相关问题