共计 10826 个字符,预计需要花费 28 分钟才能阅读完成。
这篇文章主要讲解了“Apache Ignite 有哪些特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“Apache Ignite 有哪些特性”吧!
1. 事务和分析 1.1. 数据网格
Ignite 内存数据网格是一个内存内的键值存储,他可以在分布式集群的内存内缓存数据。它通过强语义的数据位置和关系数据路由,来降低冗余数据的噪声,使其可以节点数的线性增长,直至几百个节点。Ignite 数据网格速度足够快,经过官方不断的测试,目前,他是分布式集群中支持事务性或原子性数据的最快的实现之一。
特性一览
1.1.1. 键值存储
Ignite 数据网格是一个内存内的键值存储,可以视为分布式的分区化的哈希,集群中每个节点都持有所有数据的一部分,这意味着集群内节点越多,就可以缓存越多的数据。和其他键值存储不同,Ignite 通过可插拔的哈选算法来决定数据的位置,每个客户端都可以通过插入一个自定义的哈希函数来决定一个键属于那个节点,并不需要任何特殊的映射服务或者命名节点。
1.1.2.JCache(JSR107)
Ignite 100% 兼容于 JCache(JSR107)规范,JCache 为数据缓存提供了非常简单,但是功能又非常强大的 API。JCache 的一部分 API 包括:
基本缓存操作
ConcurrentMap APIs
并置处理(EntryProcessor)
事件和度量
可插拔的持久化Ï
1.1.3. 分区和复制
根据配置,Ignite 可以对内存内的数据进行分区或者复制,和 REPLICATED 模式不同,数据是在集群内的所有节点中全复制的,在 PARTITIONED 模式中,数据是在集群内的多个节点中平均拆分的,允许在内存内缓存 TB 级的数据。Ignite 也可以配置成具有多个副本,来保证故障时的数据弹性。
1.1.4. 并置处理
Ignite 可以在接近数据的服务端,以并置的方式执行执行任何原生的 Java、C++ 和.Net/C# 代码。
1.1.5. 自修复集群
Ignite 集群可以自我修复,故障时客户端会自动重连,慢客户端会被自动踢出,故障节点的数据也会被自动传播到网格内的其他节点。
1.1.6. 客户端近缓存
近缓存是本地客户端侧的缓存,他会存储最近和最频繁访问的数据。
1.1.7. 堆内和堆外内存
Ignite 在内存中支持 2 种模式的数据缓存,堆内和堆外。当缓存数据占用很大的堆,超过了 Java 主堆空间时,堆外存储可以克服 JVM 垃圾回收 (gc) 导致的长时间暂停,但数据仍然在内存内。
1.1.8. 堆外索引
当配置为堆外存储时,Ignite 同时也会在堆外存储查询索引,这意味着索引不会占用任何堆内内存的空间。
1.1.9. 分层存储
如果数据变冷(不被访问),Ignite 会有选择地将其从堆内移动到堆外,然后再从堆外移动到交换存储(磁盘)。当某些数据又被访问时,他会立即被传播到顶层,并且将其他的冷数据降到低一级的存储层。
1.1.10. 二进制协议
从 1.5 版本开始,Ignite 引入了一个新的存储缓存数据的概念,叫做二进制对象,他可以:
读取一个序列化的对象的属性而不需要将整个对象反序列化;
动态改变一个对象的结构;
动态创建一个对象的结构。
1.1.11.ACID 事务
Ignite 提供了一个完全符合 ACID 的分布式事务来保证一致性。Ignite 支持乐观和悲观的并发模型以及读提交、可复制读和序列化的隔离级别。Ignite 的事务使用了二阶段提交协议,适当地也进行了很多一阶段提交的优化。
1.1.12. 无死锁事务
Ignite 支持无死锁的乐观事务,他不获得任何锁,用户也不用担心锁的顺序,这样的事务也提供了更好的性能。
1.1.13. 事务化 EntryProcessor
Ignite 的事务化 EntryProcessor 可以在服务端以一个事务来执行并置化的逻辑。
1.1.14. 跨分区事务
Ignite 可以在整个集群中,在一个缓存的所有分区中执行事务。
1.1.15. 锁
Ignite 允许开发人员定义明确的锁来强制缓存对象的互斥。
1.1.16.SQL 查询
Ignite 支持使用标准的 SQL 语法(ANSI 99)来查询缓存,可以使用任何的 SQL 函数,包括聚合和分组。
1.1.17. 分布式关联
Ignite 支持分布式的 SQL 关联和跨缓存的关联。
1.1.18. 持续查询
持续查询对于当执行一个查询后又想持续的获得之前的查询结果的数据更新通知时,是非常有用的。
1.1.19. 查询索引
对于 SQL 查询,Ignite 支持内存内的索引,因此所有的数据检索都是非常快的。
1.1.20. 查询一致性
Ignite 支持完整的查询一致性,查询开始执行后的更新不会影响查询的结果。
1.1.21. 查询容错
Ignite 的查询是容错的,即查询结果总是一致的并且不会受到集群拓扑改变的影响。
1.1.22.JDBC 驱动
Ignite 提供 JDBC 驱动,可以使用标准 SQL 查询和 JDBC API 获得缓存内的分布式数据。
1.1.23.ODBC 驱动
Ignite 的 ODBC 驱动可以使用标准的 SQL 查询和 ODBC API 来从缓存中获得数据。
1.1.24. 通写
通写模式允许更新数据库中的数据。
1.1.25. 通读
通读模式允许从数据库中读取数据。
1.1.26. 后写缓存
Ignite 提供了一个选项,通过后写缓存来异步地执行数据库更新。
1.1.27. 自动持久化
自动化地连接底层数据库并且生成 XML 的对象关系映射配置和 Java 领域模型 POJO。
1.1.28. 数据库集成
Ignite 可以自动地与外部数据库集成,包括 RDBMS、NoSQL 和 HDFS。
1.1.29.Web Session 集群化
Ignite 数据网格能够缓存任何支持 Java Servlet3.0 规范的的应用服务器的 Web Session,包括 Apache Tomcat,Eclipse Jetty,Oracle WebLogic 以及其他。当运行应用服务器集群时缓存 Web Session 对于提高 Servlet 容器的性能以及可扩展性是非常有用的。
1.1.30.Hibernate 二级缓存
Ignite 可以作为 Hibernate 的二级缓存(或者 L2Cache),他可以显著的提高应用中持久化层的速度。
1.1.31.Spring 缓存
Ignite 支持基于 Spring 注解方式的 Java 方法缓存以使一个方法的执行结果可以缓存在 Ignite 缓存中。以后如果同一个方法通过同样的参数集进行调用,结果会直接从缓存中获取而不是实际执行这个方法。
1.1.32.C#/.NET
Ignite.NET 构建于 Ignite 之上,他可以执行几乎所有的内存数据网格操作,包括 ACID 事务、SQL 查询、分布式关联、消息和事件等。
1.1.33.C++
Ignite.C++ 构建于 Ignite 之上,他可以执行几乎所有的内存数据网格操作,包括 SQL 查询、分布式关联等。
1.1.34.XA/JTA
Ignite 可以配置为一个 Java 事务 API(JTA)事务管理器搜索类。
1.1.35.OSGi 支持
Ignite 提供了对 OSGi 的支持。
1.2. 计算网格
分布式计算是通过并行处理的方式来获得更高的性能,更低的延迟以及线性可扩展性,Ignite 计算网格提供了一组简单的 API 来允许用户在集群内的多台计算机中执行分布式计算和数据处理。分布式并行计算是基于在集群内的节点中进行任何的计算然后将结果返回的能力。
特性一览
1.2.1. 分布式闭包执行
Ignite 计算网格可以对集群内的任何闭包进行广播和负载平衡,包括 Java8 lambda,还包括纯 Java Runnables 和 Callables。
1.2.2.ForkJoin 处理
ComputeTask 是 Ignite 对内存内 ForkJoin 范式的抽象,也是 MapReduce 的一个轻量级形式。纯 MapReduce 并不是为了性能而构建,只是适用于进行离线数据的批量处理(比如 Hadoop MapReduce)。然而,对驻留在内存的数据进行计算时,实时性,低延迟和高吞吐量通常具有很高的优先级,同时,简化 API 也非常重要。基于这些考虑,Ignite 提供了 ComputeTask API, 这个就是 Ignite 的 ForkJoin 实现(轻量级 MapReduce)。
1.2.3. 集群化 ExecutorService
Ignite 提供了一个标准 JDK 中 ExecutorService 的集群实现,他会自动地在集群内以负载平衡的模式执行所有的计算。计算也会容错并且只要有一个节点就能保证执行,你可以把他视为集群化的分布式的线程池。
1.2.4. 计算和数据的并置
计算和数据的并置可以使网络中数据序列化最小化,并且可以显著的提高应用的性能和可扩展性。不管何时,都要尽量做好集群节点中缓存的待处理数据和计算的并置。Ignite 根据需要,可以提供多种方式自动或者手动地进行计算和数据的并置。
1.2.5. 容错
Ignite 支持自动作业故障切换。如果一个节点崩溃或其他错误,作业会自动转移到其他可用节点重新执行。可插拔的 FailoverSpi 负责进行执行一个故障任务时新节点的选择。至少一次保证:Ignite 保证只要有一个节点存在,任务就不会丢失。
1.2.6. 负载均衡
负载平衡组件负责平衡集群内各节点的分布式任务。Ignite 中负载平衡是通过可插拔的 LoadBalancingSpi 实现的,它控制集群内所有节点的负载并且确保集群内的每个节点的均衡负载。对于同质化环境中的同质化任务,负载平衡是通过随机或者循环的策略实现的。然而,在很多其他的场景中,特别是在负荷不均衡时,他提供了很多的更复杂的自适应的负载平衡策略。
1.2.7. 作业检查点
检查点是通过可插拔的 CheckpointSpi 实现的,他提供了一个保存作业中间状态的功能,检查点对于长期执行的任务需要保存一些中间状态以防止节点故障是非常有用的。当一个故障节点重启时,一个作业可以载入一个保存的检查点然后从故障处继续执行。
1.2.8. 作业调度
可插拔的 CollisionSpi 对于待执行的作业到达某个节点时如何进行调度提供了细粒度的控制。他提供了很多的策略,包括:FIFO,优先级甚至磨洋工。
1.3. 流式计算和 CEP
Ignite 流式计算允许以可扩展和容错的方式处理连续不中断的数据流。在一个中等规模的集群中,数据注入 Ignite 的比例会很高,很容易达到每秒百万级的规模。工作方式:
客户端将流式数据注入 Ignite;
数据在 Ignite 数据节点中自动分区;
数据在滑动窗口中并发处理;
客户端在流式数据中执行并发 SQL 查询;
客户端订阅数据变化的持续查询。
特性一览
1.3.1. 数据流处理器
数据流处理器是由 IgniteDataStreamer API 定义的,他是为了将大量的持续数据流注入 Ignite 流缓存而构建的。数据流处理器以可扩展和容错的方式,为所有数据流注入 ignite 提供了至少一次保证。
1.3.2. 并置处理
当需要执行自定义的业务逻辑而不仅仅是添加新数据时,就需要利用 StreamRecerver API 的优势了。流接收器允许直接在缓存数据的节点上以并置的方式处理数据流,在数据进入缓存之前可以修改数据或者添加任何自定义预处理逻辑.
1.3.3. 滑动窗口
Ignite 流功能也允许在数据滑动窗口内进行查询。滑动窗口被配置为 Ignite 的缓存退出策略,可以基于时间、基于大小或者基于批量处理,可以配置一个缓存一个数据窗口,然而,如果需要同一个数据具有不同的滑动窗口,也可以非常容易的为同一个数据定义不止一个缓存。
1.3.4. 滑动窗口查询
可以使用所有的 Ignite 数据索引功能,再加上 Ignite SQL、TEXT,以及基于谓词的缓存查询,在数据流中进行查询。
1.3.5. 持续查询
持续查询对于当执行一个查询后又想持续的获得之前的查询结果的数据更新通知时,是非常有用的。
1.3.6.JMS 数据流处理器
Ignite 的 JMS 数据流处理器可以从 JMS 代理中消费消息然后将他们插入 Ignite 缓存。
1.3.7.Apache Flume Sink
IgniteSink 是一个 Flume 池,他会从一个相关的 Flume 通道中提取事件然后将其注入 Ignite 缓存。
1.3.8.MQTT 流处理器
Ignite 的 MQTT 流处理器从一个 MQTT 主题中消费消息,然后向 Ignite 缓存提供一个转换后的键值对。
1.3.9.Twitter 流处理器
Ignite 的 Twitter 流处理器从一个 Twitter 流 API 中消费消息,然后将他们注入 Ignite 缓存。
1.3.10.Apache Kafka 流处理器
Ignite 的 Kafka 数据流处理器从一个 Kafka 代理中的给定 Kafka 主题中消费消息,然后将他们插入 Ignite 缓存。
1.3.11.Apache Camel 流处理器
Ignite 的 Camel 流处理器从一个 Apache Camel 消费者端点消费消息,然后将他们注入 Ignite 缓存。
1.3.12.Apache Storm 流处理器
Ignite 的 Storm 流处理器从一个 Apache Storm 消费者端点消费消息,然后将他们注入 Ignite 缓存。
1.4. 分布式数据结构
Ignite 以分布式的形式支持基于 java.util.concurrent 框架的大部分数据结构。比如,可以在一个节点上使用 java.util.concurrent.BlockingQeque 加入一些东西,然后再另一个节点上获取它。或者有一个分布式的 ID 生成器,他可以保证所有节点上的 ID 唯一性。
支持的数据结构包括:
Concurrent Map (Cache)
分布式队列和集合
AtomicLong
AtomicReference
AtomicSequence (ID 生成器)
CountDownLatch
ExecutorService
特性一览
1.4.1. 队列和集合
Ignite 提供了一个快速的分布式阻塞队列和分布式集合的实现。
1.4.2. 并置和非并置
队列和集合可以以并置或者非并置的方式进行部署。在并置模式中,集合中的所有元素都会驻留在同一个集群节点上。这种模式下,应该使用相对较小的集合。在非并置模式下,集合的元素会均等地分布在集群内,这就允许在内存内保存很大的集合。
1.4.3. 有界队列
有界队列允许用户持有一个有预定义最大容量的队列,这将有助于控制整个缓存的容量。
1.4.4. 原子化类型
Ignite 支持分布式的 AtomicLong 和 AtomicReference。
1.4.5.CountDownLatch
Ignite 的 CountDownLatch 可以在所有的 Ignite 节点上同步作业。
1.4.6. 基于预留的 ID 生成器
ID 生成器是通过 AtomicSequence 实现的,当以原子序列执行 incrementAndGet()(或任何其他的原子性操作)时,数据结构会保存未来值的一个范围,这会保证跨集群内该序列实例的唯一性。
1.4.7.Semaphore
Ignite 的分布式 semaphore 的实现和行为类似于 ** java.util.concurrent.Semaphore**。
1.5. 分布式消息和事件
Ignite 提供了集群范围的高性能的消息功能,支持基于发布 - 订阅以及直接点对点通信模型的数据交换。消息可以以有序的,也可以以无序的方式进行交换。有序消息会稍微有点慢,但是如果使用的话,Ignite 会保证收到消息的顺序和发送消息的顺序一致。当在分布式网格环境中发生各种事件时,Ignite 的分布式事件功能可以使应用收到通知。可以自动地收到集群内的本地和远程节点上发生的任务执行、读写和查询操作的通知,事件通知也可以分组在一起然后分批或者定期地发送。
特性一览
1.5.1. 基于主题的消息
Ignite 的分布式消息可以使所有的节点基于主题进行集群范围的通信。
1.5.2. 对对点的消息
Ignite 的消息可以发给一组节点或者一个单独的节点。
1.5.3. 有序和无序
Ignite 支持有序的以及无序的消息,有序消息要稍微慢一点,但是如果你用的话,Ignite 保证收到消息的顺序和发送消息的顺序一致。
1.5.4. 事件通知
当集群内发生各种事件时,Ignite 的分布式事件功能可以使应用收到通知。
1.5.5. 本地和远程事件
应用可以收到集群内的本地和远程节点上有关任务执行、读写和查询操作的通知。
1.5.6. 自动化批处理
事件通知可以分组在一起然后分批或者定期地进行发送。
1.6. 服务网格
服务网格可以在集群中任意部署自定义的服务,可以实现和部署任意服务,比如自定义计数器,ID 生成器,分级映射等。服务网格的主要应用场景是提供了在集群中部署各种单例服务的能力。但是,如果需要一个服务的多实例,Ignite 也能保证所有服务实例的正确部署和容错。
特性一览
1.6.1. 用户定义服务
用户可以定义自己的服务并且 Ignite 会自动在集群内进行服务的分布化。比如,你可以创建自己特定的分布式计数器,或者自定义的数据加载服务,或者任何其他逻辑,然后将其部署到集群中。
1.6.2. 集群单例
Ignite 允许将任意数量的服务部署到任意的网格节点,然而,最常用的特性是在集群中部署单例服务,不管是拓扑变更还是节点故障,Ignite 都会维护单一性。
1.6.3. 容错
Ignite 会保证服务的持续有效,以及按照指定的配置进行部署,不管是拓扑变更还是节点故障。
1.6.4. 负载平衡
在所有的情况下,不只是单例服务部署,Ignite 都会自动地确保在集群内的每个节点上部署大致数量相等的服务。当集群拓扑发生变化时,Ignite 会对部署的服务进行重新评估,然后可能对已经部署的服务重新在其他节点上部署以保证更好的负载平衡。
1.7. 自动化 RDMS 集成
Ignite 支持与各种持久化存储的集成,它可以连接数据库,导入模式,配置索引类型,以及自动生成所有必要的 XML OR 映射配置和 Java 领域模型 POJO,这些都可以轻易地下载和复制进自己的工程。Ignite 可以与任何支持 JDBC 驱动的关系数据库集成,包括 Oracle、PostgreSQL、MS SQL Server 和 MySQL。
1.7.1.RDBMS 集成向导
通过 IgniteWeb 控制台,可以自动化的进行 RDBMS 集成,这是一个交互式的配置向导、管理和监控工具,它可以:
为 Ignite 集群创建和下载各种配置;
从任何 RDBMS 模式自动化地构建 Ignite 的 SQL 元数据;
在内存缓存中执行 SQL 查询;
查看查询的执行计划、内存模式以及流化图表。
Ignite Web 控制台是一个创新工具,它提供了很多丰富的功能来管理 Ignite 集群,并不限于上述提到的功能。
2.Hadoop 和 Spark2.1.Spark 共享 RDD
Apache Ignite 提供了一个 Spark RDD 抽象的实现,他允许跨越多个 Spark 作业时方便地在内存内共享状态,不管是在同一个应用内部还是在不同的 Spark 应用之间。IgniteRDD 作为 Ignite 分布式缓存的视图,既可以在 Spark 作业执行进程中部署,也可以在 Spark workder 中部署,也可以在他自己的集群中部署。根据预配置的部署模型,状态共享既可以只存在于一个 Spark 应用的生命周期的内部(嵌入式模式),或者也可以存在于 Spark 应用的外部(独立模式),这种模式下状态可以在多个 Spark 应用之间共享。
特性一览
2.1.1. 共享 Spark RDD
IgniteRDD 是原生 Spark RDD 和 DataFrame API 的一个实现,除了所有的标准的 RDD 功能,还会跨越其他的 Spark 作业、应用和 worker 共享 RDD 的状态。
2.1.2. 更快的 SQL
Spark 不支持 SQL 索引,但是 Ignite 可以,由于先进的内存索引功能,IgniteRDD 在执行 SQL 查询时比 Spark 原生 RDD 或者 DataFrame 有百倍的性能提升。
2.2. 内存文件系统
Ignite 一个独有的技术就是叫做 Ignite 文件系统(IGFS)的分布式内存文件系统,IGFS 提供了和 Hadoop HDFS 类似的功能,但是仅仅在内存内部。事实上,除了他自己的 API,IGFS 实现了 Hadoop 的文件系统 API,并且可以透明地加入 Hadoop 或者 Spark 应用。IGFS 将每个文件中的数据拆分为独立的数据块然后将他们存储在分布式内存缓存中。然而和 Hadoop HDFS 不同,IGFS 不需要一个 name 节点,并且用一个哈希函数自动地确定文件数据位置。IGFS 可以独立部署,也可以部署在 HDFS 之上,不管是哪种情况,他对于 HDFS 中存储的文件都是一个透明的缓存层。Tachyon 替代 在 Spark 环境中 IGFS 可以透明地替代 Tachyon 文件系统,鉴于 IGFS 是基于久经考验的 Ignite 数据网格技术,他会比 Tachyon 有更好的读和写性能,并且更稳定。Hadoop 文件系统 如果打算使用 IGFS 作为 Hadoop 文件系统,可以参考 Hadoop 集成文档,这时 IGFS 和 HDFS 并没有什么不同。
特性一览
2.2.1. 堆内和堆外
IGFS 既可以在堆内,也可以在堆外存储文件,对于更大的存储空间占用关键是利用堆外来避免长时间的 JVM 垃圾回收导致的暂停。
2.2.2.IGFS 作为 Hadoop 文件系统
IGFS 实现了 Hadoop 的 FileSystem API,并且可以部署为原生的 Hadoop 文件系统,就像 HDFS 一样,这样就可以在 Hadoop 或者 Spark 环境中以即插即用的方式原生部署 IGFS。
2.2.3.Hadoop 文件系统缓存
IGFS 也可以在另一个 Hadoop 文件系统上部署为一个缓存层。这时 IGFS 中的一个文件如果发生变化,更新会被自动地写入 HDFS。此外,如果读取了一个文件并且当时他不在 IGFS 中,Ignite 会自动地将其从 HDFS 载入 IGFS。
2.2.4. 任意 Hadoop 发行版
IGFS 集成了一个原生的 Apache Hadoop 发行版,也支持 Cloudera CDH 以及 Hortonworks HDP。
2.3. 内存 MapReduce
Apache Ignite 带来了一个 Hadoop MapReduce API 的内存实现,他比原生的 Hadoop MapReduce 实现有了显著的性能提升。Ignite MapReduce 比 Hadoop 性能更好,是因为基于推的资源分配以及进程内的计算和数据的并置。另外,因为 IGFS 不需要一个 name 节点,当使用 IGFS 时,Ignite MapReduce 作业会在一个链路内直达 IGFS 数据节点。
特性一览
2.3.1. 原生 Hadoop MapReduce
Ignite MapReduce 是 Hadoop MapReduce API 的一个实现,他可以原生地加入已有的 Hadoop 环境,并且性能有很大的提升。
2.3.2.Hadoop 加速器
Ignite 提供了一个 Hadoop 加速器发行版,包括 IGFS 以及 Ignite MapReduce,这个环境可以很容易地加入已有的 Hadoop 环境。
3. 无处不在地运行 3.1. 客户端协议
对于客户端连接 Ignite 集群,Ignite 提供了若干种协议,包括 Ignite 原生客户端,REST/HTTP,SSL/TLS,Memcached,Node.js(正在开发中)等等。特性一览
3.1.1.Ignite 原生客户端
对于客户端远程连接 Ignite,原生客户端提供了完整的功能,他允许使用完整的 Ignite API,包括近缓存,事务,计算,流式处理,服务等等。
3.1.2.Memcached
Ignite 兼容于 Memcached,他允许用户使用任何 Memcached 兼容客户端在 Ignite 缓存中保存以及获取分布式数据,包括 Java、PHP、Python、Ruby 以及其他的 Memcached 客户端。
3.1.3.REST/HTTP
Ignite 提供了一个 HTTP REST 客户端,可以以 REST 的方式通过 HTTP 或者 HTTPS 协议进行通信。REST API 可以进行执行不同的操作,比如从 / 往缓存中读 / 写、执行任务、获取各种指标等等。
3.1.4.SSL/TLS
Ignite 允许在所有的 Ignite 客户端和服务端节点之间使用 SSL 进行 Socket 通信。
3.1.5.Node.js(开发中)
Ignite 未来会提供 Node.js 客户端,他能进行所有的缓存操作以及在 Ignite 中存储的 JSON 数据中执行 SQL 查询。
3.2. 部署选项
Apache Ignite 可以独立运行,在集群中运行,在 Docker 容器中运行,还可以运行在 Apache Mesos 以及 Hadoop Yarn 环境。他可以在物理机上运行,也可以在虚拟机上运行。公有云 对于公有云环境,Ignite 原生地继承了 Amazon AWS、Google Compute Engine,对于其他的云环境,Ignite 集成了 Apache JCloud,他支持大多数的云供应商。容器 Ignite 可以容易地运行于容器环境,Ignite 集成了 Docker,在服务器启动之前可以自动地构建并且将用户代码部署进 Ignite。资源管理 Ignite 原生地集成了 Hadoop Yarn 和 Apache Mesos,可以将 Ignite 轻易地无缝部署进 Hadoop 和 Spark 环境。
特性一览
3.2.1. 零部署
Ignite 节点会自动地感知自定义类,而不需要显式地部署他们。
3.2.2. 动态模式改变
Ignite 以二进制的方式存储对象,而不需要在服务端节点上部署类。
3.2.3. 独立集群
Ignite 节点之间会自动感知,这有助于必要时扩展集群,而不需要重启整个集群,简单地启动新加入的节点然后他们就是自动地加入集群。
3.2.4.Docker 容器
Docker 可以将 Ignite 及其所有的依赖打包进一个标准的映像。Docker 自动下载 Ignite 版本映像之后,就可以将用户的应用部署进 Ignite,配置节点,他会自动启动整个配置好的 Ignite 节点。
3.2.5. 公共云
对于公有云环境,Ignite 原生地继承了 Amazon AWS、Google Compute Engine,对于其他的云环境,Ignite 集成了 Apache JCloud,他支持大多数的云供应商。
3.2.6.Apache Mesos
Ignite 提供了 Apache Mesos 的原生支持,可以很容易地将 Ignite 部署进 Mesos 数据中心,比如 Hadoop 和 Spark 环境。
3.2.7.Hadoop Yarn
Ignite 提供了 Hadoop Yarn 的原生支持,可以很容易地将 Ignite 部署进 Hadoop 和 Spark 环境。
感谢各位的阅读,以上就是“Apache Ignite 有哪些特性”的内容了,经过本文的学习后,相信大家对 Apache Ignite 有哪些特性这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!