跳转到主要内容
Chinese, Simplified

原文:https://stackoverflow.com/questions/36036910/apache-spark-vs-apache-ignite

 

目前我正在研究Apache spark和Apache点燃框架。

本文描述了它们之间的一些原理差异点燃火花但我意识到我仍然不理解它们的目的。

我的意思是哪个问题比点燃更可取,反之亦然?

 

答案1:

我想说Spark是交互式分析的好产品,而Ignite更适合实时分析和高性能事务处理。 Ignite通过提供高效且可扩展的内存中键值存储以及索引,查询数据和运行计算的丰富功能来实现这一目标。

Ignite的另一个常见用途是分布式缓存,它通常用于提高与关系数据库或任何其他数据源交互的应用程序的性能。

 

答案2

Apache Ignite是一个高性能,集成和分布式内存平台,用于实时计算和处理大规模数据集.Ignite是一个与数据源无关的平台,可以在RAM中的多个服务器之间分发和缓存数据提供前所未有的处理速度和海量应用程序可扩展性

Apache Spark(集群计算框架)是一种快速的内存数据处理引擎,具有富有表现力的开发API,允许数据工作者有效地执行需要快速迭代访问数据集的流,机器学习或SQL工作负载。通过允许用户程序将数据加载到集群的内存中并重复查询,Spark非常适合高性能计算和机器学习算法。

一些概念差异:

Spark不存储数据,它从其他存储(通常是基于磁盘)加载数据以进行处理,然后在处理完成时丢弃数据。另一方面,Ignite提供具有ACID事务和SQL查询功能的分布式内存中键值存储(分布式缓存或数据网格)。

Spark用于非事务性的只读数据(RDD不支持就地突变),而Ignite支持非事务性(OLAP)有效负载以及完全符合ACID的事务(OLTP)

Ignite完全支持可以“无数据”的纯计算有效载荷(HPC / MPP)。 Spark基于RDD,仅适用于数据驱动的有效负载。

结论:

Ignite和Spark都是内存计算解决方案,但它们针对不同的用例。

在许多情况下,它们一起使用以获得优异的结果:

  • Ignite可以提供共享存储,因此状态可以从一个Spark应用程序或作业传递到另一个。
  • Ignite可以为SQL提供索引,因此Spark SQL可以加速超过1,000x(spark不会索引数据)
  • 使用文件而不是RDD时,Apache Ignite内存文件系统(IGFS)也可以在Spark作业和应用程序之间共享状态
Tags
 
Article
知识星球
 
微信公众号
 
视频号