voi*_*oid 10 memcachedb redis apache-spark apache-storm
我正在研究Spark(伯克利)集群计算系统.在我的研究中,我了解了其他一些内存系统,如Redis,Memcachedb等.如果有人能给我SPARK和REDIS(以及MEMCACHEDB)之间的比较,那将会很棒.在什么情况下Spark比其他内存系统有优势?
Did*_*zia 30
他们是完全不同的野兽.
Redis和memcachedb是分布式商店.Redis是一个纯内存系统,具有可选的持久性,具有各种数据结构.Memcachedb在Berkeley-DB之上提供了一个memcached API.在这两种情况下,它们更有可能被OLTP应用程序使用,或最终用于简单的实时分析(数据的即时聚合).
Redis和memcachedb都缺乏有效地并行处理存储数据的机制.您无法轻松扫描并对存储的数据应用某些处理.它们不是为此而设计的.此外,除了使用客户端手动分片之外,它们无法在群集中扩展(虽然Redis群集实现正在进行中).
Spark是一个通过提供内存分布式数据集来加速大规模分析工作(尤其是迭代工作)的系统.使用Spark,您可以在一组计算机上实现高效的迭代映射/减少作业.
Redis和Spark都依赖于内存数据管理.但Redis(和memcached)与其他OLTP NoSQL存储在同一个球场,而Spark与Hadoop map/reduce系统非常相似.
Redis擅长以高达1毫秒的延迟运行大量快速存储/检索操作.Spark在大量数据上实现大规模迭代算法,用于机器学习,图形分析,交互式数据挖掘等.
更新:关于Storm的其他问题
问题是将Spark与Storm进行比较(见下面的评论).
Spark仍然基于这样的想法:当现有数据量巨大时,将流程移动到数据更便宜,而不是将数据移动到流程.每个节点存储(或缓存)其数据集,并将作业提交给节点.因此,流程将移至数据.它与Hadoop map/reduce非常相似,只是内存存储被积极地用于避免I/O,这使得它对迭代算法有效(当前一步的输出是下一步的输入时).Shark只是一个构建在Spark之上的查询引擎(支持临时分析查询).
你可以看到Storm是Spark的完整架构.Storm是一种分布式流媒体引擎.每个节点实现一个基本过程,数据项流入/流出互连节点的网络(与Spark相反).有了Storm,数据就会转移到这个过程中.
这两个框架都用于并行化大量数据的计算.
但是,Storm擅长动态处理大量生成/收集的小数据项(例如在Twitter流上实时计算某些聚合函数或分析).
Spark适用于已导入Spark群集的现有数据(如Hadoop),通过内存管理提供快速扫描功能,并最大限度地减少迭代算法的全局I/O数量.
归档时间: |
|
查看次数: |
5367 次 |
最近记录: |