比较内存集群计算系统

e37o9pze  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(251)

我正在研究spark(berkeley)集群计算系统。在我的研究中,我了解了一些其他的内存系统,比如redis、memcachedb等。如果有人能给我一个spark和redis(以及memcachedb)的比较,那就太好了。在什么情况下,spark比其他内存系统更有优势?

qco9c6ql

qco9c6ql1#

他们是完全不同的动物。
redis和memcachedb是分布式存储。redis是一个纯内存系统,具有可选的持久性,具有多种数据结构。memcachedb在berkeley db之上提供了memcachedapi。在这两种情况下,它们更有可能被oltp应用程序使用,或者最终用于简单的实时分析(动态聚合数据)。
redis和memcachedb都缺乏有效地并行迭代存储数据的机制。您无法轻松地扫描并对存储的数据应用某些处理。它们不是为此而设计的。此外,除了使用客户端手动分片之外,它们不能在集群中扩展(redis集群的实现正在进行中)。
spark是一个通过提供内存中的分布式数据集来加速大规模分析作业(尤其是迭代作业)的系统。使用spark,您可以在计算机集群上实现高效的迭代map/reduce作业。
redis和spark都依赖于内存数据管理。但是redis(和memcached)与其他oltpnosql商店的情况相同,而spark与hadoopmap/reduce系统非常相似。
redis擅长以亚毫秒延迟的高吞吐量运行大量快速存储/检索操作。spark在机器学习、图形分析、交互式数据挖掘等领域的大规模迭代算法的实现方面非常出色。。。大量的数据。
更新:关于风暴的附加问题
问题是比较spark和storm(见下面的评论)。
spark仍然基于这样一种想法,即当现有数据量很大时,将进程移动到数据中比将数据移动到进程中更便宜。每个节点存储(或缓存)其数据集,并将作业提交给节点。所以这个过程会转移到数据上。它与hadoopmap/reduce非常相似,只是内存存储被积极地用来避免i/o,这使得它对于迭代算法非常有效(当上一步的输出是下一步的输入时)。shark只是一个建立在spark之上的查询引擎(支持即席分析查询)。
你可以把storm看作是spark的完全相反的建筑风格。storm是一个分布式流媒体引擎。每个节点实现一个基本的过程,数据项流入/流出一个互联节点的网络(与spark相反)。使用storm时,数据将移动到进程。
这两个框架都用于并行计算大量数据。
然而,storm擅长动态处理大量生成/收集的小数据项(例如在twitter流上实时计算一些聚合函数或分析)。
spark应用于已导入spark集群的现有数据(如hadoop),由于内存管理提供了快速扫描功能,并将迭代算法的全局i/o数降至最低。

相关问题