Ignite實戰

1.概述本篇博客將對Ignite的基礎環境、集群快照、分布式計算、SQL查詢與處理、機器學習等內容進行介紹 。
2.內容2.1 什么是Ignite?在學習Ignite之前 , 我們先來了解一下什么是Ignite?首先 , Ignite是Apache開源的頂級項目之一 。Ignite 內存數組組織框架是一個高性能、集成和分布式的內存計算和事務平臺,用于大規模的數據集處理,比傳統的基于磁盤或閃存的技術具有更高的性能,同時他還為應用和不同的數據源之間提供高性能、分布式內存中數據組織管理的功能 。
2.2 安裝環境要求【Ignite實戰】Apache Ignite官方在如下環境中進行了測試:

  • JDK:Oracle JDK8、11或17 , Open JDK8、11或17,IBM JDK8、11或17;
  • OS:Linux(任何版本),Mac OS X(10.6及以上),Windows(XP及以上),Windows Server(2008及以上),Oracle Solaris;
  • 網絡:沒有限制(建議10G甚至更快的網絡帶寬);
  • 架構:x86,x64,SPARC,PowerPC 。
支持Docker、DEB/RPM、Kubernetes、虛擬機等安裝模式 。
2.3 Ignite啟動和停止節點的類型有兩種:服務端節點和客戶端節點 。服務端節點參與緩存、計算的執行、流數據處理等 。客戶端節點提供遠程接入服務端的能力 , 有完整的Ignite API支持,包括近緩存、事務、計算、流處理、服務等 。所有的節點默認都以服務端模式啟動,客戶端模式需要顯式指定 。
1.啟動服務端節點執行如下所示命令:
ignite.sh path/to/configuration.xml2.啟動客戶端節點執行如下Java代碼片段:
IgniteConfiguration cfg = new IgniteConfiguration();// 開啟客戶端模式cfg.setClientMode(true);// 啟動客戶端Ignite ignite = Ignition.start(cfg);3.停止服務節點強制停止某個節點時,可能會導致數據丟失或數據不一致,甚至會使節點無法重啟 。當節點沒有響應且無法正常關閉時 , 應將強制停止作為最后的手段 。正常停止可以使節點完成關鍵操作并正確完成其生命周期,執行正常停止的正確過程如下:
  • 使用以下方法之一停止節點:
    • 以編程方式調用Ignite.close();
    • 以編程方式調用System.exit();
    • 發送用戶中斷信號 。Ignite使用JVM關閉鉤子在JVM停止之前執行自定義邏輯 。如果通過運行ignite.sh來啟動節點并且不將其與終端分離 , 則可以通過按下Ctrl+C來停止節點 。
  • 從基線拓撲中刪除該節點 。如果啟用了基線自動調整 , 則可以不執行此步驟 。
從基準拓撲中刪除節點將在其余節點上開始再平衡過程 。如果計劃在停止后立即重啟該節點,則不必進行再平衡 。在這種情況下,請勿從基準拓撲中刪除該節點 。
2.4 集群快照Ignite 提供了使用Ignite Persistence為部署創建完整集群快照的能力。Ignite 快照包括持久在磁盤上的所有數據記錄的一致的集群范圍副本以及恢復過程所需的一些其他文件 ??煺战Y構類似于 Ignite Persistence 存儲目錄的布局,但有幾個例外 。讓我們以這個快照為例來回顧一下結構:
work└── snapshots└── backup23012020└── db├── binary_meta│├── node1│├── node2│└── node3├── marshaller│├── node1│├── node2│└── node3├── node1│└── my-sample-cache│├── cache_data.dat│├── part-3.bin│├── part-4.bin│└── part-6.bin├── node2│└── my-sample-cache│├── cache_data.dat│├── part-1.bin│├── part-5.bin│└── part-7.bin└── node3└── my-sample-cache├── cache_data.dat├── part-0.bin└── part-2.bin
  • 快照位于該目錄下,并work\snapshots命名為Ignite 的工作目錄 。backup23012020work
  • 快照是為 3 節點集群創建的,所有節點都在同一臺機器上運行 。在此示例中,節點被命名為node1、node2和node3,而在實踐中 , 名稱等于節點的 一致 ID 。
  • my-sample-cache快照保留緩存的副本 。
  • 該文件夾將數據記錄的db副本保存在文件中 。只要當前還原過程不需要預寫和檢查點 , 就不會將其添加到快照中 。part-N.bincache_data.dat
  • binary_meta和目錄存儲元數據和特定于marshaller編組器的信息 。
注意:通常快照分布在整個集群中前面的示例顯示了為在同一臺物理機上運行的集群創建的快照 。因此,整個快照位于一個位置 。在實踐中 , 所有節點都將運行在不同的機器上,快照數據分布在集群中 。每個節點保存一段快照,其中包含屬于該特定節點的數據 ?;謴瓦^程解釋了如何在恢復過程中將所有段連接在一起 。

推薦閱讀