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 。
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编组器的信息 。
推荐阅读
- 快读《ASP.NET Core技术内幕与项目实战》WebApi3.1:WebApi最佳实践
- IQueryable和IEnumerable 快读《ASP.NET Core技术内幕与项目实战》EFCore2.5:集合查询原理揭秘
- Spring事务传播行为实战
- 四十八 SpringCloud微服务实战——搭建企业级开发框架:【移动开发】整合uni-app搭建移动端快速开发框架-使用第三方UI框架
- React +SpreadJS+Echarts 项目实战:在线报价采购系统
- 四十七 SpringCloud微服务实战——搭建企业级开发框架:【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
- 【一】ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?
- Module XAF新手入门 - 模块
- 3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架
- 机器学习实战-AdaBoost