设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Apache Ignite vs Apache Spark

2015-5-13 21:09| 发布者: joejoe0332| 查看: 3462| 评论: 0|原作者: Frank_mc, 思维特无敌|来自: oschina

摘要: 出于我前面的贴子大赞了 Apache Ignite 的基于内存的文件系统和缓存功能,我将总结一下我将总结一下 Ignite 和 Spark 的主要区别。我发现这样的问题被重复提出。这很容易回答,因此不必在网上“挖坟”。 ...

  出于我前面的贴子大赞了 Apache Ignite 的基于内存的文件系统和缓存功能,我将总结一下我将总结一下 Ignite 和 Spark 的主要区别。我发现这样的问题被重复提出。这很容易回答,因此不必在网上“挖坟”。


  显而易见的一个不同就是 Ignite 是一个存于内存的计算系统,也就是把内存做为主要的存储设备。Spark 则是在处理时使用内存。系统的索引更快,提取时间减少,避免了序列/反序列等优点,使前者这种内存优先的方法更快。


  Ignite 的mapreduce 完全兼容 Hadoop MR API,因此大家可以简单的复用现有的MR代码,并让其以30倍的速度运行。 我准备发布的 Apache Bigtop in-memory stack的例子,将展示出这感人的加速。


  另外,不同于Spark的 streaming,Ignite 并不受RDD 大小的限制。换句话说,你不需要在处理RDD前指定他的长度,你可以确实做到真正的流式处理。就是说,Ignite处理一个流式内容的时候是没有延迟的。


  溢出是内存计算的通病:毕竟内存是有限的。在Spark中RDD是不可变长的,如果一个RDD创建的时候内存占用大于节点内存的1/2,那随后 transformation跟generation的RDD很有可能占满整个节点内存,然后导致溢出。除非新的RDD是在另一个节点产生的。Tachyon 也在努力试图解决这个问题。


  Ignite 没有这种数据内存溢出的问题,因为他的缓存可以按照原子或事务的方式更新。无论如何,还是有可能溢出的:处理策略在这里有详细解释


-作为一个组件,Ignite也提供了first-class citizen的文件系统缓存层。注意,我已经定位过这个跟Ignite的不同,但是由于一些原因,我发的东西被他们删除了。我想知道为什么?;)

-Ignite 使用 off-heap 内存,来避免 GC 中断,灰常有效。

-Ignite 保证强一致性。

-Ignite 完全支持 SQL99 作为一个支持 ACID 事务的方式。

-Ignite 提供了内存SQL索引功能,可以避免全部数据扫描,直接导致非常显著的性能改进(参见第一段)

-用Ignite的Java开发者不需要学习Scala Ropes这些,而且还鼓励使用Groovy。为了文章的简洁与凝练,对于后者我保留我的专业意见。

我会在闲散很长一段时间,但你可以考虑阅读一下

  http://www.infoq.com/articles/gridgain-apache-ignite ,

  http://www.odbms.org/blog/2015/02/interview-nikita-ivanov/


  这个项目的作者之一Nikita Ivanov 对其它关键的区别有很好的反馈。另外, 另外如果你对这些内容感兴趣 - 考虑加入 Apache Ignite (孵化中) 开发组 然后开始贡献代码吧!


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部