结合Apache Ignite探索机器学习

简介: Apache Ignite新版本发布,支持机器学习和深度学习!

此前的文章中,我们讨论过Apache Ignite机器学习网格。当时仅有测试版。在随后的版本2.4中,机器学习得以运用。新版本对部分内容进行了更新,支持基于分区的数据集以及遗传算法。Apache Ignite提供了多种可独立运行的机器学习示例,将入门学习变得简易。在本系列的后续文章里,我们将利用Ignite支持的机器学习算法对部分开源数据集进行分析。

简介

我们将在本部分对机器学习网格进行简单的回顾,图1展示了机器学习网格的结构。

figure1

图1:机器学习网格

首先,Apache Ignite所呈现的机器学习能力相当实用,可在Ignite内直接构建预测模型。基于此,用户在不采取高代价ETL(Extract-Transform-Load)过程或数据传输的情况下,获取高规模高性能的预测模型。

在Ignite出现之前,机器学习模型得训练和部署在不同的系统上。例如,用户需要将数据移出Ignite,接着使用其它工具对数据进行训练,这样模型才能部署到不同的系统中。此方法存在如下缺点:

  • 需要一个花费昂贵的ETL 进程,特别是针对大型数据集。
  • 在进行ETL时会对数据进行快照。之后,实时系统中的数据也许会发生改变,所以需要将已训练的数据存放至训练集中。

其次,现今多数系统需处理大量的数据,这些数据通常会超过单个服务器容量。分布式计算很好的解决了这个问题,但一些平台并非为数据存储和操作而设计,它们仅适合训练。所以,研发人员需要考虑如何在生产环境中解决由部署所引发的复杂问题。

Ignite所呈现的机器学习能力致力于解决如下问题:

  • 结合Ignite处理数据,能避免因不同系统之间转换而导致的ETL昂贵问题。
  • Ignite能够提供分布式计算,实现对数据的存储及操作。
  • Ignite更新了部分机器学习算法,此举对分布式计算进行了优化,并且可充分利用Ignite进行并置处理。
  • Ignite能作为流式数据的接收器,允许机器学习实时应用。

机器学习通常是一个迭代过程,上下文可能会在算法运行时发生改变。因此,为了避免工作损失和延迟,Ignite支持了基于分区的数据集,使其能够应对节点故障问题。

基于分区的数据集

Apache Ignite目前能够支持基于分区的数据集。这是一个位于机器学习算法和存储计算之间的抽象层。它使用类似于MapReduce的操作进行计算。
在Ignite中,对键值对(K-V)使用散列算法,以确定值存在集群中。实际上,值是部分存储的。在图2中,我们可以看到两个节点集群,它们分别对应两个分区(P1和P2)。

figure2

图2:基于分区的数据集


机器学习算法通常采用迭代的方式,并且需要上下文以及数据。此部分体现于图2中的C和D。

如果某个节点失效,Ignite可重新进行分区并找到上下文,如图3所示。例如,节点2中有分区1的备份数据(图中灰色部分),若节点1失效,我们则可用节点2中的数据覆盖节点1。数据可从集群或者本地ETL(用D*标示)中恢复。

figure3

图3:节点2中分区1的备份数据

算法及应用

接着,我们将会简述Ignite所支持的机器学习算法

_2

表1:机器学习算法


机器学习库中包含多种遗传算法,此部分在另一篇博文中进行了探讨。

总结

最新版本的Apache Ignite有着许多重要的特性。基于分区的数据集在节点失效的情况下,通过保存上下文使得机器学习算法正常运行。机器学习算法支持海量用例。遗传算法的加入也为处理复杂数据提供了新的机会。

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《Introduction to Machine Learning with Apache Ignitet》,作者:Akmal Chaudhri ,译者:Elaine,审校:袁虎。

文章为简译,更为详细的内容,请查看原文

相关文章
|
6月前
|
存储 机器学习/深度学习 Apache
如何将Apache Hudi应用于机器学习
如何将Apache Hudi应用于机器学习
62 0
|
6月前
|
存储 缓存 监控
Java一分钟之-Apache Ignite:分布式内存计算平台
【5月更文挑战第21天】Apache Ignite是一款开源的分布式内存计算平台,涉及内存数据网格、流处理和计算服务。本文关注其常见问题,如数据丢失、分区不均、内存管理和网络延迟。为保证数据一致性,建议使用适当的數據模式和备份策略,实现数据持久化。优化内存配置和监控网络可提升性能与稳定性。提供的Java代码示例展示了如何创建分区缓存并设置备份。正确配置和管理Ignite是构建高可用、高性能应用的关键,持续监控集群状态至关重要。
173 0
|
6月前
|
存储 机器学习/深度学习 Apache
Apache Hudi与机器学习特征存储
Apache Hudi与机器学习特征存储
84 0
|
6月前
|
存储 机器学习/深度学习 分布式计算
Apache Hudi在Hopsworks机器学习的应用
Apache Hudi在Hopsworks机器学习的应用
127 0
|
机器学习/深度学习 存储 分布式计算
Hadoop生态系统中的机器学习与数据挖掘技术:Apache Mahout和Apache Spark MLlib的应用
Hadoop生态系统中的机器学习与数据挖掘技术:Apache Mahout和Apache Spark MLlib的应用
|
消息中间件 机器学习/深度学习 SQL
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(1)
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(1)
162 0
|
存储 SQL 机器学习/深度学习
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(2)
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(2)
161 0
|
机器学习/深度学习 存储 人工智能
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(3)
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(3)
193 0
|
1月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
648 13
Apache Flink 2.0-preview released
|
1月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
73 3

推荐镜像

更多
下一篇
无影云桌面