使用spark和cassandra的优点

px9o7tmv  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(412)

我已经看到使用spark和cassandra的组合比较流行。
我知道cassandra是一个大数据解决方案,它提供了可靠性而不是一致性,因此适合于实时系统。它还为查询提供了类似sql的语法,但它的数据管理方式与普通db非常不同。
另一方面,hadoop提供了可靠性之上的一致性,因此适合于分析系统。它的接口是mapreduce,这对于现在来说是相当慢和太低的级别。这就是Spark的来源。sparks使用hadoop的hdfs,并用更好的体系结构取代旧的mapreduce,该体系结构更多地利用内存而不是硬盘,并公开更好的接口,如rdd和Dataframe。
所以我的问题是:为什么我要用spark和cassandra结合呢?这有什么好处?为什么不用其中一个呢?
据我所知,cassandra只会替换hdfs,所以我的可靠性高于一致性,我还必须使用rdd/dataframes而不是cql,spark会在引擎盖下生成cql,这给了我更少的控制。

0pizxfdo

0pizxfdo1#

hdfs是一个“文件系统”,hadoop就在上面。
还有许多数据库引擎运行在hadoop和hdfs之上,比如hbase、hive等,并利用它的分布式体系结构。
你不必在hadoop上运行spark,你可以独立运行它。
Cassandra的cql非常非常基础。您在最新版本中添加了基本的聚合函数,但是cassandra并不是为分析工作负载而设计的,很可能您都很难运行分析查询,并且会“扼杀”集群性能。
你不能比较hdfs和cassandra,就像你不能比较ntfs和mysql一样。cassandra基于dynamo(aws)和bigtable(google)概念,设计用于繁重的工作负载和简单的可伸缩性,并且每秒可以处理非常多的请求。还有其他选择,在hadoop上运行,比如hbase,cassandra在我见过的每一个基准测试中都获胜(但不要相信基准测试,总是用你的数据和用例来测试它)。
所以spark试图解决的是,在cassandra中的数据之上执行分析查询。使用spark,您可以从许多源(rdbms、文件、hadoop等)获取数据,并对这些数据执行分析查询。
还有,这个
可靠性高于一致性,因此适用于实时系统
我错了。有许多实时系统需要一致性(不是最终的)、序列化、事务等,而cassandra无法提供这些。。。

41ik7eoe

41ik7eoe2#

spark是一个数据处理框架。您将使用spark处理数据。
Cassandra是一个数据库管理系统。你要把你的数据储存在Cassandra。
的确,您可以使用cql在cassandra中处理数据,如果您可以使用cql摆脱困境,那么您可能不需要spark。不过,一般来说,spark是一种更强大的工具。在实践中,许多人使用spark从外部源接收数据,对其进行处理,并将已处理的数据存储在cassandra中。

qxgroojn

qxgroojn3#

cassandra是nosql数据库,它的分析功能非常有限。
例如,cql支持单个分区内的聚合,并且不存在表联接。
spark是流式处理引擎,它可以使用来自hdfs或数据库的数据。因此,如果您想对整个数据集中的数据进行深入分析,就必须使用spark。你可以在这里阅读更多关于Cassandra和大数据的内容

相关问题