一、集群和部署html
Ignite集群基于无共享架构,全部的集群节点都是平等的,独立的,整个集群不存在单点故障。数据库
经过灵活的Discovery SPI组件,Ignite节点能够自动地发现对方,所以只要须要,能够轻易地对集群进行缩放。(与哪套集群相似呢? ES)缓存
Ignite能够独立运行,能够组成集群,能够运行于Kubernetes和Docker容器中,也能够运行在Apache Mesos以及Hadoop Yarn上,能够运行于虚拟机和云环境,也能够运行于物理机,从技术上来讲,集群部署在哪里,是没有限制的。服务器
容器:网络
Ignite彻底支持容器环境,Ignite与Docker的集成能够在服务启动以前,自动地将业务代码构建而且部署进Ignite。架构
Ignite也能够部署在Kubernetes中,能够自动地部署和管理容器化的应用。分布式
资源管理器:函数
二、基于内存的存储工具
Ignite基于分布式的内存架构,它将内存计算的性能和扩展性,与磁盘持久化和强一致性整合到一个系统中。oop
并置和C/S处理
分区和复制
冗余
一致性
Ignite做为内存存储
Ignite持久化
Ignite与第三方数据库
Ignite基于固化内存架构,若是开启了原生持久化,能够同时处理存储于内存和磁盘上的数据和索引。
Ignite原生持久化
Ignite原生持久化是数据持久化的一个很是灵活、可扩展以及方便的方式,它普遍应用于应用须要一个分布式内存数据库的场景中。
Ignite的原生持久化是一个分布式的、ACID、兼容SQL的磁盘存储,它能够与Ignite的固化内存无缝地集成,Ignite原生持久化是可选的,能够打开和关闭,若是关闭,Ignite就是一个纯内存存储。
Ignite做为一个平台,若是固化内存和原生持久化同时使用的优点和特色:
固化内存
磁盘
第三方持久化
交换空间
四、数据可视化
Ignite能够与不少数据可视化工具集成,经过图表或者丰富的图形,协助对存储在分布式缓存中的数据进行分析和解释,甚至提供可操做的建议。
IgniteWeb控制台:Ignite的Web控制台是一个基于Web的交互式管理工具, 功能包括:
从RDBMS中自动加载SQL元数据;
接入Ignite集群而后执行SQL;
管理和监控Ignite节点和缓存;
查看堆、CPU以及其它有用的节点和缓存的指标;
Tableau:Tableau是一个聚焦于商业智能的交互式数据可视化工具,经过Ignite的ODBC驱动,Tableau就能够接入Ignite集群,功能包括:
查询集群中存储的分布式数据;
缓存数据的表格或者图形展现;
使用Tableau支持的各类方式对数据进行分析;
Zeppelin:Apache Zeppelin是一个基于Web的记事本,能够交互式地对数据进行分析,经过Ignite的JDBC驱动,Zeppelin就能够接入集群,功能包括:
五、Hadoop & Spark
5.1 Spark共享内存层
Apache Ignite提供了一个Spark RDD抽象的实现,他容许跨越多个Spark做业时方便地在内存内共享状态,在不一样的Spark做业、worker或者应用之间,IgniteRDD为内存中的相同数据提供了一个共享、可变的视图,原生的SparkRDD没法在多个Spark做业或者应用之间进行共享。
IgniteRDD做为Ignite分布式缓存的视图,既能够在Spark做业执行进程中部署,也能够在Spark worker中部署,也能够在它本身的集群中部署。
根据预配置的部署模型,状态共享既能够只存在于一个Spark应用的生命周期的内部(嵌入式模式),或者也能够存在于Spark应用的外部(独立模式)。
虽然SparkSQL支持丰富的SQL语法,可是它没有实现索引。这样即便在一个不太大的数据集上执行查询,也可能花费比较长的时间,由于须要对数据进行所有扫描。若是使用Ignite,开发者能够配置一级和二级索引,带来上千倍的性能提高。
Ignite DataFrames:
Spark的DataFrame API引入了模式的概念来描述数据,这样Spark就能够以表格的形式管理模式和组织数据。简而言之,DataFrame就是组织成命名列的分布式数据集合。它从概念上来讲,等价于关系数据库的表,会促使Spark执行查询优化器,产生比RDD更高效的执行计划,而RDD仅仅是集群中的一个分区化的元素集合。Ignite扩展了DataFrame,若是将Ignite做为Spark的内存层,会简化开发以及提升性能,好处包括:
经过高级的索引以及避免数据在网络中的移动,优化Spark的查询执行计划,使Spark查询速度更快;
5.2 内存文件系统
Ignite一个独有的技术就是叫作Ignite文件系统(IGFS)的分布式内存文件系统,IGFS提供了和Hadoop HDFS相似的功能,可是仅仅在内存内部。事实上,除了他本身的API,IGFS实现了Hadoop的文件系统API,而且能够透明地加入Hadoop或者Spark应用。
IGFS将每一个文件中的数据拆分为独立的数据块而后将他们存储在分布式内存缓存中。然而和Hadoop HDFS不一样,IGFS不须要一个name节点,而且用一个哈希函数自动地肯定文件数据位置。
IGFS能够独立部署,也能够部署在HDFS之上,不论是哪一种状况,他对于HDFS中存储的文件都是一个透明的缓存层。
IGFS能够与原生的Apache Hadoop发行版集成,也能够与Cloudera CDH、Hortonworks HDP集成。
Tachyon替代
在Spark环境中IGFS能够透明地替代Spark环境中的Tachyon文件系统,鉴于IGFS是基于久经考验的Ignite数据网格技术,他会比Tachyon有更好的读和写性能,而且更稳定。
Hadoop文件系统
若是打算使用IGFS做为Hadoop文件系统,能够参考Hadoop集成文档,这时IGFS和HDFS并无什么不一样。
5.3 内存MapReduce
Apache Ignite带来了一个Hadoop MapReduce API的内存实现,他比原生的Hadoop MapReduce实现有了显著的性能提高。Ignite MapReduce比Hadoop性能更好,是由于基于推的资源分配以及进程内的计算和数据的并置。
六、Ignite的应用场景
在线场景:包括在线的RDBMS数据缓存和在线分布式计算
离线场景:可用于一些在线的实时/准实时数据分析业务,另外可用于数据库存储过程替代
大数据平台:Ignite可用于搭建独立的大数据平台,用于大规模数据的注入、清洗、存储、查询、统计分析、出报表等全流程业务处理
传统大规模业务系统的分布式架构迁移:Ignite能够传统应用紧密整合,在不颠覆已有架构的前提下,帮助用户进行 传统应用的分布式架构转型。为运行多年的复杂、运行缓慢、技术架构落后的业务系统,提供加速能力的同时,引入众多的先进功能,大幅提高原有系统的能力