1. 前言

前段时间一直在研究alluxio。不过alluxio似乎不太适合我们的使用场景。我们的需求就是想要有一个能无缝集成Hadoop和Spark的内存缓存层来加速每个本地运行的job。关于alluxio的研究可以查看我alluxio分类下的文章。关于为什么alluxio不适合内存缓存加速job的场景可以参考我的文章:采用alluxio提升MR job和Spark job性能的注意点

本文主要介绍下ignite。主要参考文档:

  1. Apache Ignite(V1.7.0)中文开发手册
  2. ignite官网
  3. ignite-github

PS: 强烈推荐看ignite-github上面的简介,比较清楚明白。

2.介绍

Apache ignite是一个基于内存的Data Fabric(google出来是翻译成数据交换网,可以理解为一个数据交换的中间件吧)。ignite是为计算、实时数据处理等提供的一个高性能、分布式、高度集成的基于内存的平台。

基于ignite的另外一个产品叫做GridGain,也可以了解下。

用我的话来说: 就是基于内存的数据组织平台。以后就简单称之为ignite内存平台或者data fabric吧。

关于更多的ignite中文介绍可以参考下文章:Apache Ignite 初探。同时这篇文章也比较了有类似功能的Hazelcast、Oracle Coherence和GemFire。

ignite不是一个简单的内存数据组织平台,其功能非常多。可以看下如下的ignite组件:

下面来简单浏览下其每个功能的说明。

3. 功能介绍

3.1 key-Value Store

ignite in-memory数据网格可以看做一个分布式的分区hash map。每个node都拥有所有数据的一部分。

3.2 SQL Queries

支持标准的SQL语法来查询缓存

3.3 ACID事务支持

支持符合ACID的分布式柔性事务。可以确保一致性。

3.4 集群功能

支持热扩展、自动发现等集群功能

3.5 Streaming & CEP

支持流式处理。

3.6 Runs Everywhere

以二进制格式写入对象到cache,方便各种语言的client交互

4. 总结

我写的介绍还是非常的简陋,只能了解的非常大概。更多内容还是建议参考Apache Ignite(V1.7.0)中文开发手册