欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ApacheIgnite有哪些特性

這篇文章主要講解了“Apache Ignite有哪些特性”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Apache Ignite有哪些特性”吧!

成都一家集口碑和實力的網(wǎng)站建設服務商,擁有專業(yè)的企業(yè)建站團隊和靠譜的建站技術,十年企業(yè)及個人網(wǎng)站建設經(jīng)驗 ,為成都數(shù)千家客戶提供網(wǎng)頁設計制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設等服務,包括成都營銷型網(wǎng)站建設,品牌網(wǎng)站制作,同時也為不同行業(yè)的客戶提供網(wǎng)站建設、網(wǎng)站設計的服務,包括成都電商型網(wǎng)站制作建設,裝修行業(yè)網(wǎng)站制作建設,傳統(tǒng)機械行業(yè)網(wǎng)站建設,傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設。在成都做網(wǎng)站,選網(wǎng)站制作建設服務商就選創(chuàng)新互聯(lián)建站

1.事務和分析

1.1.數(shù)據(jù)網(wǎng)格

Ignite內(nèi)存數(shù)據(jù)網(wǎng)格是一個內(nèi)存內(nèi)的鍵值存儲,他可以在分布式集群的內(nèi)存內(nèi)緩存數(shù)據(jù)。 它通過強語義的數(shù)據(jù)位置和關系數(shù)據(jù)路由,來降低冗余數(shù)據(jù)的噪聲,使其可以節(jié)點數(shù)的線性增長,直至幾百個節(jié)點。 Ignite數(shù)據(jù)網(wǎng)格速度足夠快,經(jīng)過官方不斷的測試,目前,他是分布式集群中支持事務性或原子性數(shù)據(jù)的最快的實現(xiàn)之一。

特性一覽

1.1.1.鍵值存儲

Ignite數(shù)據(jù)網(wǎng)格是一個內(nèi)存內(nèi)的鍵值存儲,可以視為分布式的分區(qū)化的哈希,集群中每個節(jié)點都持有所有數(shù)據(jù)的一部分,這意味著集群內(nèi)節(jié)點越多,就可以緩存越多的數(shù)據(jù)。 和其他鍵值存儲不同,Ignite通過可插拔的哈選算法來決定數(shù)據(jù)的位置,每個客戶端都可以通過插入一個自定義的哈希函數(shù)來決定一個鍵屬于那個節(jié)點,并不需要任何特殊的映射服務或者命名節(jié)點。

1.1.2.JCache(JSR107)

Ignite 100%兼容于JCache(JSR107)規(guī)范,JCache為數(shù)據(jù)緩存提供了非常簡單,但是功能又非常強大的API。 JCache的一部分API包括:

  • 基本緩存操作

  • ConcurrentMap APIs

  • 并置處理(EntryProcessor)

  • 事件和度量

  • 可插拔的持久化?

1.1.3.分區(qū)和復制

根據(jù)配置,Ignite可以對內(nèi)存內(nèi)的數(shù)據(jù)進行分區(qū)或者復制,和REPLICATED模式不同,數(shù)據(jù)是在集群內(nèi)的所有節(jié)點中全復制的,在PARTITIONED模式中,數(shù)據(jù)是在集群內(nèi)的多個節(jié)點中平均拆分的,允許在內(nèi)存內(nèi)緩存TB級的數(shù)據(jù)。 Ignite也可以配置成具有多個副本,來保證故障時的數(shù)據(jù)彈性。

1.1.4.并置處理

Ignite可以在接近數(shù)據(jù)的服務端,以并置的方式執(zhí)行執(zhí)行任何原生的Java、C++和.Net/C#代碼。

1.1.5.自修復集群

Ignite集群可以自我修復,故障時客戶端會自動重連,慢客戶端會被自動踢出,故障節(jié)點的數(shù)據(jù)也會被自動傳播到網(wǎng)格內(nèi)的其他節(jié)點。

1.1.6.客戶端近緩存

近緩存是本地客戶端側(cè)的緩存,他會存儲最近和最頻繁訪問的數(shù)據(jù)。

1.1.7.堆內(nèi)和堆外內(nèi)存

Ignite在內(nèi)存中支持2種模式的數(shù)據(jù)緩存,堆內(nèi)堆外。當緩存數(shù)據(jù)占用很大的堆,超過了Java主堆空間時,堆外存儲可以克服JVM垃圾回收(gc)導致的長時間暫停,但數(shù)據(jù)仍然在內(nèi)存內(nèi)。

1.1.8.堆外索引

當配置為堆外存儲時,Ignite同時也會在堆外存儲查詢索引,這意味著索引不會占用任何堆內(nèi)內(nèi)存的空間。

1.1.9.分層存儲

如果數(shù)據(jù)變冷(不被訪問),Ignite會有選擇地將其從堆內(nèi)移動到堆外,然后再從堆外移動到交換存儲(磁盤)。 當某些數(shù)據(jù)又被訪問時,他會立即被傳播到頂層,并且將其他的冷數(shù)據(jù)降到低一級的存儲層。

1.1.10.二進制協(xié)議

從1.5版本開始,Ignite引入了一個新的存儲緩存數(shù)據(jù)的概念,叫做二進制對象,他可以:

  • 讀取一個序列化的對象的屬性而不需要將整個對象反序列化;

  • 動態(tài)改變一個對象的結(jié)構(gòu);

  • 動態(tài)創(chuàng)建一個對象的結(jié)構(gòu)。

1.1.11.ACID事務

Ignite提供了一個完全符合ACID的分布式事務來保證一致性。 Ignite支持樂觀悲觀的并發(fā)模型以及讀提交可復制讀序列化的隔離級別。 Ignite的事務使用了二階段提交協(xié)議,適當?shù)匾策M行了很多一階段提交的優(yōu)化。

1.1.12.無死鎖事務

Ignite支持無死鎖的樂觀事務,他不獲得任何鎖,用戶也不用擔心鎖的順序,這樣的事務也提供了更好的性能。

1.1.13.事務化EntryProcessor

Ignite的事務化EntryProcessor可以在服務端以一個事務來執(zhí)行并置化的邏輯。

1.1.14.跨分區(qū)事務

Ignite可以在整個集群中,在一個緩存的所有分區(qū)中執(zhí)行事務。

1.1.15.鎖

Ignite允許開發(fā)人員定義明確的鎖來強制緩存對象的互斥。

1.1.16.SQL查詢

Ignite支持使用標準的SQL語法(ANSI 99)來查詢緩存,可以使用任何的SQL函數(shù),包括聚合和分組。

1.1.17.分布式關聯(lián)

Ignite支持分布式的SQL關聯(lián)跨緩存的關聯(lián)

1.1.18.持續(xù)查詢

持續(xù)查詢對于當執(zhí)行一個查詢后又想持續(xù)的獲得之前的查詢結(jié)果的數(shù)據(jù)更新通知時,是非常有用的。

1.1.19.查詢索引

對于SQL查詢,Ignite支持內(nèi)存內(nèi)的索引,因此所有的數(shù)據(jù)檢索都是非常快的。

1.1.20.查詢一致性

Ignite支持完整的查詢一致性,查詢開始執(zhí)行后的更新不會影響查詢的結(jié)果。

1.1.21.查詢?nèi)蒎e

Ignite的查詢是容錯的,即查詢結(jié)果總是一致的并且不會受到集群拓撲改變的影響。

1.1.22.JDBC驅(qū)動

Ignite提供JDBC驅(qū)動,可以使用標準SQL查詢和JDBC API獲得緩存內(nèi)的分布式數(shù)據(jù)。

1.1.23.ODBC驅(qū)動

Ignite的ODBC驅(qū)動可以使用標準的SQL查詢和ODBC API來從緩存中獲得數(shù)據(jù)。

1.1.24.通寫

通寫模式允許更新數(shù)據(jù)庫中的數(shù)據(jù)。

1.1.25.通讀

通讀模式允許從數(shù)據(jù)庫中讀取數(shù)據(jù)。

1.1.26.后寫緩存

Ignite提供了一個選項,通過后寫緩存來異步地執(zhí)行數(shù)據(jù)庫更新。

1.1.27.自動持久化

自動化地連接底層數(shù)據(jù)庫并且生成XML的對象關系映射配置和Java領域模型POJO。

1.1.28.數(shù)據(jù)庫集成

Ignite可以自動地與外部數(shù)據(jù)庫集成,包括RDBMS、NOSQL和HDFS。

1.1.29.Web Session集群化

Ignite數(shù)據(jù)網(wǎng)格能夠緩存任何支持Java Servlet3.0規(guī)范的的應用服務器的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方法緩存以使一個方法的執(zhí)行結(jié)果可以緩存在Ignite緩存中。以后如果同一個方法通過同樣的參數(shù)集進行調(diào)用,結(jié)果會直接從緩存中獲取而不是實際執(zhí)行這個方法。

1.1.32.C#/.NET

Ignite.NET構(gòu)建于Ignite之上,他可以執(zhí)行幾乎所有的內(nèi)存數(shù)據(jù)網(wǎng)格操作,包括ACID事務、SQL查詢、分布式關聯(lián)、消息和事件等。

1.1.33.C++

Ignite.C++構(gòu)建于Ignite之上,他可以執(zhí)行幾乎所有的內(nèi)存數(shù)據(jù)網(wǎng)格操作,包括SQL查詢、分布式關聯(lián)等。

1.1.34.XA/JTA

Ignite可以配置為一個Java事務API(JTA)事務管理器搜索類。

1.1.35.OSGi支持

Ignite提供了對OSGi的支持。

1.2.計算網(wǎng)格

分布式計算是通過并行處理的方式來獲得更高的性能,更低的延遲以及線性可擴展性,Ignite計算網(wǎng)格提供了一組簡單的API來允許用戶在集群內(nèi)的多臺計算機中執(zhí)行分布式計算和數(shù)據(jù)處理。 分布式并行計算是基于在集群內(nèi)的節(jié)點中進行任何的計算然后將結(jié)果返回的能力。

特性一覽

1.2.1.分布式閉包執(zhí)行

Ignite計算網(wǎng)格可以對集群內(nèi)的任何閉包進行廣播和負載平衡,包括Java8 lambda,還包括純Java Runnables和Callables。

1.2.2.ForkJoin處理

ComputeTask是Ignite對內(nèi)存內(nèi)ForkJoin范式的抽象,也是MapReduce的一個輕量級形式。純MapReduce并不是為了性能而構(gòu)建,只是適用于進行離線數(shù)據(jù)的批量處理(比如Hadoop MapReduce)。 然而,對駐留在內(nèi)存的數(shù)據(jù)進行計算時,實時性,低延遲和高吞吐量通常具有很高的優(yōu)先級,同時,簡化API也非常重要。基于這些考慮,Ignite提供了ComputeTask API,這個就是Ignite的ForkJoin實現(xiàn)(輕量級MapReduce)。

1.2.3.集群化 ExecutorService

Ignite提供了一個標準JDK中ExecutorService的集群實現(xiàn),他會自動地在集群內(nèi)以負載平衡的模式執(zhí)行所有的計算。計算也會容錯并且只要有一個節(jié)點就能保證執(zhí)行,你可以把他視為集群化的分布式的線程池。

1.2.4.計算和數(shù)據(jù)的并置

計算和數(shù)據(jù)的并置可以使網(wǎng)絡中數(shù)據(jù)序列化最小化,并且可以顯著的提高應用的性能和可擴展性。不管何時,都要盡量做好集群節(jié)點中緩存的待處理數(shù)據(jù)和計算的并置。 Ignite根據(jù)需要,可以提供多種方式自動或者手動地進行計算和數(shù)據(jù)的并置。

1.2.5.容錯

Ignite支持自動作業(yè)故障切換。如果一個節(jié)點崩潰或其他錯誤,作業(yè)會自動轉(zhuǎn)移到其他可用節(jié)點重新執(zhí)行。可插拔的FailoverSpi負責進行執(zhí)行一個故障任務時新節(jié)點的選擇。 至少一次保證:Ignite保證只要有一個節(jié)點存在,任務就不會丟失。

1.2.6.負載均衡

負載平衡組件負責平衡集群內(nèi)各節(jié)點的分布式任務。Ignite中負載平衡是通過可插拔的LoadBalancingSpi實現(xiàn)的,它控制集群內(nèi)所有節(jié)點的負載并且確保集群內(nèi)的每個節(jié)點的均衡負載。 對于同質(zhì)化環(huán)境中的同質(zhì)化任務,負載平衡是通過隨機或者循環(huán)的策略實現(xiàn)的。然而,在很多其他的場景中,特別是在負荷不均衡時,他提供了很多的更復雜的自適應的負載平衡策略。

1.2.7.作業(yè)檢查點

檢查點是通過可插拔的CheckpointSpi實現(xiàn)的,他提供了一個保存作業(yè)中間狀態(tài)的功能,檢查點對于長期執(zhí)行的任務需要保存一些中間狀態(tài)以防止節(jié)點故障是非常有用的。當一個故障節(jié)點重啟時,一個作業(yè)可以載入一個保存的檢查點然后從故障處繼續(xù)執(zhí)行。

1.2.8.作業(yè)調(diào)度

可插拔的CollisionSpi對于待執(zhí)行的作業(yè)到達某個節(jié)點時如何進行調(diào)度提供了細粒度的控制。他提供了很多的策略,包括:FIFO,優(yōu)先級甚至磨洋工。

1.3.流式計算和CEP

Ignite流式計算允許以可擴展和容錯的方式處理連續(xù)不中斷的數(shù)據(jù)流。在一個中等規(guī)模的集群中,數(shù)據(jù)注入Ignite的比例會很高,很容易達到每秒百萬級的規(guī)模。 工作方式:

  1. 客戶端將流式數(shù)據(jù)注入Ignite;

  2. 數(shù)據(jù)在Ignite數(shù)據(jù)節(jié)點中自動分區(qū);

  3. 數(shù)據(jù)在滑動窗口中并發(fā)處理;

  4. 客戶端在流式數(shù)據(jù)中執(zhí)行并發(fā)SQL查詢

  5. 客戶端訂閱數(shù)據(jù)變化的持續(xù)查詢

Apache Ignite有哪些特性

特性一覽

1.3.1.數(shù)據(jù)流處理器

數(shù)據(jù)流處理器是由IgniteDataStreamer API定義的,他是為了將大量的持續(xù)數(shù)據(jù)流注入Ignite流緩存而構(gòu)建的。數(shù)據(jù)流處理器以可擴展和容錯的方式,為所有數(shù)據(jù)流注入ignite提供了至少一次保證

1.3.2.并置處理

當需要執(zhí)行自定義的業(yè)務邏輯而不僅僅是添加新數(shù)據(jù)時,就需要利用StreamRecerver API的優(yōu)勢了。 流接收器允許直接在緩存數(shù)據(jù)的節(jié)點上以并置的方式處理數(shù)據(jù)流,在數(shù)據(jù)進入緩存之前可以修改數(shù)據(jù)或者添加任何自定義預處理邏輯.

1.3.3.滑動窗口

Ignite流功能也允許在數(shù)據(jù)滑動窗口內(nèi)進行查詢。滑動窗口被配置為Ignite的緩存退出策略,可以基于時間基于大小或者基于批量處理,可以配置一個緩存一個數(shù)據(jù)窗口,然而,如果需要同一個數(shù)據(jù)具有不同的滑動窗口,也可以非常容易的為同一個數(shù)據(jù)定義不止一個緩存。

1.3.4.滑動窗口查詢

可以使用所有的Ignite數(shù)據(jù)索引功能,再加上Ignite SQL、TEXT,以及基于謂詞的緩存查詢,在數(shù)據(jù)流中進行查詢。

1.3.5.持續(xù)查詢

持續(xù)查詢對于當執(zhí)行一個查詢后又想持續(xù)的獲得之前的查詢結(jié)果的數(shù)據(jù)更新通知時,是非常有用的。

1.3.6.JMS數(shù)據(jù)流處理器

Ignite的JMS數(shù)據(jù)流處理器可以從JMS代理中消費消息然后將他們插入Ignite緩存。

1.3.7.Apache Flume Sink

IgniteSink是一個Flume池,他會從一個相關的Flume通道中提取事件然后將其注入Ignite緩存。

1.3.8.MQTT流處理器

Ignite的MQTT流處理器從一個MQTT主題中消費消息,然后向Ignite緩存提供一個轉(zhuǎn)換后的鍵值對。

1.3.9.Twitter流處理器

Ignite的Twitter流處理器從一個Twitter流API中消費消息,然后將他們注入Ignite緩存。

1.3.10.Apache Kafka流處理器

Ignite的Kafka數(shù)據(jù)流處理器從一個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.分布式數(shù)據(jù)結(jié)構(gòu)

Ignite以分布式的形式支持基于java.util.concurrent框架的大部分數(shù)據(jù)結(jié)構(gòu)。比如,可以在一個節(jié)點上使用java.util.concurrent.BlockingQeque加入一些東西,然后再另一個節(jié)點上獲取它。或者有一個分布式的ID生成器,他可以保證所有節(jié)點上的ID唯一性。

支持的數(shù)據(jù)結(jié)構(gòu)包括:

  • Concurrent Map (Cache)

  • 分布式隊列和集合

  • AtomicLong

  • AtomicReference

  • AtomicSequence (ID生成器)

  • CountDownLatch

  • ExecutorService

特性一覽

1.4.1.隊列和集合

Ignite提供了一個快速的分布式阻塞隊列分布式集合的實現(xiàn)。

1.4.2.并置和非并置

隊列和集合可以以并置或者非并置的方式進行部署。在并置模式中,集合中的所有元素都會駐留在同一個集群節(jié)點上。這種模式下,應該使用相對較小的集合。在非并置模式下,集合的元素會均等地分布在集群內(nèi),這就允許在內(nèi)存內(nèi)保存很大的集合。

1.4.3.有界隊列

有界隊列允許用戶持有一個有預定義最大容量的隊列,這將有助于控制整個緩存的容量。

1.4.4.原子化類型

Ignite支持分布式的AtomicLongAtomicReference

1.4.5.CountDownLatch

Ignite的CountDownLatch可以在所有的Ignite節(jié)點上同步作業(yè)。

1.4.6.基于預留的ID生成器

ID生成器是通過AtomicSequence實現(xiàn)的,當以原子序列執(zhí)行incrementAndGet()(或任何其他的原子性操作)時,數(shù)據(jù)結(jié)構(gòu)會保存未來值的一個范圍,這會保證跨集群內(nèi)該序列實例的唯一性。

1.4.7.Semaphore

Ignite的分布式semaphore的實現(xiàn)和行為類似于** java.util.concurrent.Semaphore**。

1.5.分布式消息和事件

Ignite提供了集群范圍的高性能的消息功能,支持基于發(fā)布-訂閱以及直接點對點通信模型的數(shù)據(jù)交換。消息可以以有序的,也可以以無序的方式進行交換。有序消息會稍微有點慢,但是如果使用的話,Ignite會保證收到消息的順序和發(fā)送消息的順序一致。 當在分布式網(wǎng)格環(huán)境中發(fā)生各種事件時,Ignite的分布式事件功能可以使應用收到通知。可以自動地收到集群內(nèi)的本地和遠程節(jié)點上發(fā)生的任務執(zhí)行、讀寫和查詢操作的通知,事件通知也可以分組在一起然后分批或者定期地發(fā)送。

特性一覽

1.5.1.基于主題的消息

Ignite的分布式消息可以使所有的節(jié)點基于主題進行集群范圍的通信。

1.5.2.對對點的消息

Ignite的消息可以發(fā)給一組節(jié)點或者一個單獨的節(jié)點。

1.5.3.有序和無序

Ignite支持有序的以及無序的消息,有序消息要稍微慢一點,但是如果你用的話,Ignite保證收到消息的順序和發(fā)送消息的順序一致。

1.5.4.事件通知

當集群內(nèi)發(fā)生各種事件時,Ignite的分布式事件功能可以使應用收到通知。

1.5.5.本地和遠程事件

應用可以收到集群內(nèi)的本地和遠程節(jié)點上有關任務執(zhí)行、讀寫和查詢操作的通知。

1.5.6.自動化批處理

事件通知可以分組在一起然后分批或者定期地進行發(fā)送。

1.6.服務網(wǎng)格

服務網(wǎng)格可以在集群中任意部署自定義的服務,可以實現(xiàn)和部署任意服務,比如自定義計數(shù)器,ID生成器,分級映射等。 服務網(wǎng)格的主要應用場景是提供了在集群中部署各種單例服務的能力。但是,如果需要一個服務的多實例,Ignite也能保證所有服務實例的正確部署和容錯。

特性一覽

1.6.1.用戶定義服務

用戶可以定義自己的服務并且Ignite會自動在集群內(nèi)進行服務的分布化。比如,你可以創(chuàng)建自己特定的分布式計數(shù)器,或者自定義的數(shù)據(jù)加載服務,或者任何其他邏輯,然后將其部署到集群中。

1.6.2.集群單例

Ignite允許將任意數(shù)量的服務部署到任意的網(wǎng)格節(jié)點,然而,最常用的特性是在集群中部署單例服務,不管是拓撲變更還是節(jié)點故障,Ignite都會維護單一性。

1.6.3.容錯

Ignite會保證服務的持續(xù)有效,以及按照指定的配置進行部署,不管是拓撲變更還是節(jié)點故障。

1.6.4.負載平衡

在所有的情況下,不只是單例服務部署,Ignite都會自動地確保在集群內(nèi)的每個節(jié)點上部署大致數(shù)量相等的服務。當集群拓撲發(fā)生變化時,Ignite會對部署的服務進行重新評估,然后可能對已經(jīng)部署的服務重新在其他節(jié)點上部署以保證更好的負載平衡。

1.7.自動化RDMS集成

Ignite支持與各種持久化存儲的集成,它可以連接數(shù)據(jù)庫,導入模式,配置索引類型,以及自動生成所有必要的XML OR映射配置和Java領域模型POJO,這些都可以輕易地下載和復制進自己的工程。 Ignite可以與任何支持JDBC驅(qū)動的關系數(shù)據(jù)庫集成,包括Oracle、PostgreSQL、MS SQL Server和MySQL。 Apache Ignite有哪些特性

1.7.1.RDBMS集成向?qū)?/h5>

通過IgniteWeb控制臺,可以自動化的進行RDBMS集成,這是一個交互式的配置向?qū)А⒐芾砗捅O(jiān)控工具,它可以:

  • 為Ignite集群創(chuàng)建和下載各種配置;

  • 從任何RDBMS模式自動化地構(gòu)建Ignite的SQL元數(shù)據(jù);

  • 在內(nèi)存緩存中執(zhí)行SQL查詢;

  • 查看查詢的執(zhí)行計劃、內(nèi)存模式以及流化圖表。

Ignite Web控制臺是一個創(chuàng)新工具,它提供了很多豐富的功能來管理Ignite集群,并不限于上述提到的功能。

2.Hadoop和Spark

2.1.Spark共享RDD

Apache Ignite提供了一個Spark RDD抽象的實現(xiàn),他允許跨越多個Spark作業(yè)時方便地在內(nèi)存內(nèi)共享狀態(tài),不管是在同一個應用內(nèi)部還是在不同的Spark應用之間。 IgniteRDD作為Ignite分布式緩存的視圖,既可以在Spark作業(yè)執(zhí)行進程中部署,也可以在Spark workder中部署,也可以在他自己的集群中部署。 根據(jù)預配置的部署模型,狀態(tài)共享既可以只存在于一個Spark應用的生命周期的內(nèi)部(嵌入式模式),或者也可以存在于Spark應用的外部(獨立模式),這種模式下狀態(tài)可以在多個Spark應用之間共享。

特性一覽

2.1.1.共享Spark RDD

IgniteRDD是原生Spark RDD和DataFrame API的一個實現(xiàn),除了所有的標準的RDD功能,還會跨越其他的Spark作業(yè)、應用和worker共享RDD的狀態(tài)。

2.1.2.更快的SQL

Spark不支持SQL索引,但是Ignite可以,由于先進的內(nèi)存索引功能,IgniteRDD在執(zhí)行SQL查詢時比Spark原生RDD或者DataFrame有百倍的性能提升。

2.2.內(nèi)存文件系統(tǒng)

Ignite一個獨有的技術就是叫做Ignite文件系統(tǒng)(IGFS)的分布式內(nèi)存文件系統(tǒng),IGFS提供了和Hadoop HDFS類似的功能,但是僅僅在內(nèi)存內(nèi)部。事實上,除了他自己的API,IGFS實現(xiàn)了Hadoop的文件系統(tǒng)API,并且可以透明地加入Hadoop或者Spark應用。 IGFS將每個文件中的數(shù)據(jù)拆分為獨立的數(shù)據(jù)塊然后將他們存儲在分布式內(nèi)存緩存中。然而和Hadoop HDFS不同,IGFS不需要一個name節(jié)點,并且用一個哈希函數(shù)自動地確定文件數(shù)據(jù)位置。 IGFS可以獨立部署,也可以部署在HDFS之上,不管是哪種情況,他對于HDFS中存儲的文件都是一個透明的緩存層。 Tachyon替代在Spark環(huán)境中IGFS可以透明地替代Tachyon文件系統(tǒng),鑒于IGFS是基于久經(jīng)考驗的Ignite數(shù)據(jù)網(wǎng)格技術,他會比Tachyon有更好的讀和寫性能,并且更穩(wěn)定。 Hadoop文件系統(tǒng)如果打算使用IGFS作為Hadoop文件系統(tǒng),可以參考Hadoop集成文檔,這時IGFS和HDFS并沒有什么不同。

特性一覽

2.2.1.堆內(nèi)和堆外

IGFS既可以在堆內(nèi),也可以在堆外存儲文件,對于更大的存儲空間占用關鍵是利用堆外來避免長時間的JVM垃圾回收導致的暫停。

2.2.2.IGFS作為Hadoop文件系統(tǒng)

IGFS實現(xiàn)了Hadoop的FileSystem API,并且可以部署為原生的Hadoop文件系統(tǒng),就像HDFS一樣,這樣就可以在Hadoop或者Spark環(huán)境中以即插即用的方式原生部署IGFS。

2.2.3.Hadoop文件系統(tǒng)緩存

IGFS也可以在另一個Hadoop文件系統(tǒng)上部署為一個緩存層。這時IGFS中的一個文件如果發(fā)生變化,更新會被自動地寫入HDFS。此外,如果讀取了一個文件并且當時他不在IGFS中,Ignite會自動地將其從HDFS載入IGFS。

2.2.4.任意Hadoop發(fā)行版

IGFS集成了一個原生的Apache Hadoop發(fā)行版,也支持Cloudera CDH以及Hortonworks HDP。

2.3.內(nèi)存MapReduce

Apache Ignite帶來了一個Hadoop MapReduce API的內(nèi)存實現(xiàn),他比原生的Hadoop MapReduce實現(xiàn)有了顯著的性能提升。Ignite MapReduce比Hadoop性能更好,是因為基于推的資源分配以及進程內(nèi)的計算和數(shù)據(jù)的并置。 另外,因為IGFS不需要一個name節(jié)點,當使用IGFS時,Ignite MapReduce作業(yè)會在一個鏈路內(nèi)直達IGFS數(shù)據(jù)節(jié)點。

特性一覽

2.3.1.原生Hadoop MapReduce

Ignite MapReduce是Hadoop MapReduce API的一個實現(xiàn),他可以原生地加入已有的Hadoop環(huán)境,并且性能有很大的提升。

2.3.2.Hadoop加速器

Ignite提供了一個Hadoop加速器發(fā)行版,包括IGFS以及Ignite MapReduce,這個環(huán)境可以很容易地加入已有的Hadoop環(huán)境。

3.無處不在地運行

3.1.客戶端協(xié)議

對于客戶端連接Ignite集群,Ignite提供了若干種協(xié)議,包括Ignite原生客戶端,REST/HTTP,SSL/TLS,Memcached,Node.js(正在開發(fā)中)等等。 特性一覽

3.1.1.Ignite原生客戶端

對于客戶端遠程連接Ignite,原生客戶端提供了完整的功能,他允許使用完整的Ignite API,包括近緩存,事務,計算,流式處理,服務等等。

3.1.2.Memcached

Ignite兼容于Memcached,他允許用戶使用任何Memcached兼容客戶端在Ignite緩存中保存以及獲取分布式數(shù)據(jù),包括Java、PHP、Python、Ruby以及其他的Memcached客戶端。

3.1.3.REST/HTTP

Ignite提供了一個HTTP REST客戶端,可以以REST的方式通過HTTP或者HTTPS協(xié)議進行通信。REST API可以進行執(zhí)行不同的操作,比如從/往緩存中讀/寫、執(zhí)行任務、獲取各種指標等等。

3.1.4.SSL/TLS

Ignite允許在所有的Ignite客戶端和服務端節(jié)點之間使用SSL進行Socket通信。

3.1.5.Node.js(開發(fā)中)

Ignite未來會提供Node.js客戶端,他能進行所有的緩存操作以及在Ignite中存儲的JSON數(shù)據(jù)中執(zhí)行SQL查詢。

3.2.部署選項

Apache Ignite可以獨立運行,在集群中運行,在Docker容器中運行,還可以運行在Apache Mesos以及Hadoop Yarn環(huán)境。他可以在物理機上運行,也可以在虛擬機上運行。 公有云對于公有云環(huán)境,Ignite原生地繼承了Amazon AWSGoogle Compute Engine,對于其他的云環(huán)境,Ignite集成了Apache JCloud,他支持大多數(shù)的云供應商。 容器Ignite可以容易地運行于容器環(huán)境,Ignite集成了Docker,在服務器啟動之前可以自動地構(gòu)建并且將用戶代碼部署進Ignite。 資源管理Ignite原生地集成了Hadoop YarnApache Mesos,可以將Ignite輕易地無縫部署進Hadoop和Spark環(huán)境。 Apache Ignite有哪些特性

特性一覽

3.2.1.零部署

Ignite節(jié)點會自動地感知自定義類,而不需要顯式地部署他們。

3.2.2.動態(tài)模式改變

Ignite以二進制的方式存儲對象,而不需要在服務端節(jié)點上部署類。

3.2.3.獨立集群

Ignite節(jié)點之間會自動感知,這有助于必要時擴展集群,而不需要重啟整個集群,簡單地啟動新加入的節(jié)點然后他們就是自動地加入集群。

3.2.4.Docker容器

Docker可以將Ignite及其所有的依賴打包進一個標準的映像。Docker自動下載Ignite版本映像之后,就可以將用戶的應用部署進Ignite,配置節(jié)點,他會自動啟動整個配置好的Ignite節(jié)點。

3.2.5.公共云

對于公有云環(huán)境,Ignite原生地繼承了Amazon AWSGoogle Compute Engine,對于其他的云環(huán)境,Ignite集成了Apache JCloud,他支持大多數(shù)的云供應商。

3.2.6.Apache Mesos

Ignite提供了Apache Mesos的原生支持,可以很容易地將Ignite部署進Mesos數(shù)據(jù)中心,比如Hadoop和Spark環(huán)境。

3.2.7.Hadoop Yarn

Ignite提供了Hadoop Yarn的原生支持,可以很容易地將Ignite部署進Hadoop和Spark環(huán)境。

感謝各位的閱讀,以上就是“Apache Ignite有哪些特性”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Apache Ignite有哪些特性這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

網(wǎng)站名稱:ApacheIgnite有哪些特性
當前路徑:http://chinadenli.net/article44/ipgiee.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機企業(yè)網(wǎng)站制作做網(wǎng)站電子商務網(wǎng)站排名移動網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)