一、集羣和部署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能夠傳統應用緊密整合,在不顛覆已有架構的前提下,幫助用戶進行 傳統應用的分佈式架構轉型。爲運行多年的複雜、運行緩慢、技術架構落後的業務系統,提供加速能力的同時,引入衆多的先進功能,大幅提高原有系統的能力