Apache Ignite 与 Apache Spark比较

Apache Ignite是一个内存In-memory文件系统和缓存的分布式Data Fabric平台,其与著名的大数据处理框架Apache Spark的区别如下:

1.主要区别是Ignite是一个in-memory内存计算系统,是将内存RAM作为首要存储,而Spark只是使用RAM内存处理,只是将内存作为memory-first目标,其之所以快速是因为系统进行了更好的索引,降低了抓取获得时间,避免了序列化。

2.Ignite的mapreduce是充分兼容于Hadoop的MR API,这样能让每个人可以简单地重用之前遗留的MR代码,而能够获得>30倍的性能提升。

3.不像Spark的streaming,Ignite不受RDD大小影响,换句话说,你不必需要在处理之前需要对RDD大小进行一次检测定型,你能真正实现Streaming计算,意味着在流内容处理时没有任何延迟。

4.溢出效应是in-memory计算机系统的通用问题,因为内存是有限制的,在Spark中,RDD是不可变的,如果一个RDD以>1/2节点内存RAM被创建,随之而来的RDD的转换与生成(transformation和 generation)将填满整个节点内存,这会引起溢出效应,除非一个新的RDD在不同的其他节点上创建, Tachyon能够本质上解决这个问题;Ignite并不会有这种数据溢出效应,因为它的缓存能够以原子或事务方式更新,不管如何,溢出可能还是会发生,处理策略见这里

5.Ignite第一公民是文件系统的缓存层。

6.Ignite使用off-heap内存避免GC暂停且高效化。

7.Ignite保证强一致性。

8.Ignite支持SQL99作为其数据处理方式,支持完整的ACID事务。

9.Ignite提供内存in-memory的SQL索引功能,能够避免整个数据的扫描,直接提升性能。

10.Ignite开发者不必学习Scala

原文:On tech-n-stuff: Apache Ignite vs Apache Spark