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 快照包括持久在磁盘上的所有数据记录的一致的集群范围副本以及恢复过程所需的一些其他文件 。快照结构类似于 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编组器的信息 。
注意:通常快照分布在整个集群中前面的示例显示了为在同一台物理机上运行的集群创建的快照 。因此,整个快照位于一个位置 。在实践中 , 所有节点都将运行在不同的机器上,快照数据分布在集群中 。每个节点保存一段快照,其中包含属于该特定节点的数据 。恢复过程解释了如何在恢复过程中将所有段连接在一起 。

推荐阅读