machine-learning - 大数据实时机器学习应用的生产架构?

标签 machine-learning real-time weka mahout pentaho

我开始学习一些有关大数据的知识,重点关注预测分析,为此我有一个想要实现的案例研究:

我有一个服务器健康信息数据集,每 5 秒轮询一次。我想显示检索到的数据,但更重要的是:我想运行之前构建的机器学习模型并显示结果(有关服务器将崩溃的警报)。

机器学习模型将由机器学习专家构建,因此这完全超出了范围。我的工作是将机器学习模型集成到运行模型的平台中,并在漂亮的仪表板中显示结果。

我的问题是这个系统的“大局”架构:我看到所有的部分都已经存在(cloudera+mahout),但我缺少一个满足我所有需求的简单集成解决方案,而且我不相信状态艺术正在做一些定制软件......

那么,任何人都可以阐明这样的生产系统(通过预测分析显示数据)吗?引用架构?教程/文档?

<小时/>

注释:

  1. 我研究了一些相关技术:cloudera/hadoop、pentaho、mahout 和 weka。例如,我知道 Pentaho 能够存储大数据并对该数据运行临时 Weka 分析。使用 cloudera 和 Impala,数据专家还可以运行临时查询并分析数据,但这不是我的目标。我希望我的系统能够运行机器学习模型,并在一个漂亮的仪表板中显示结果以及检索到的数据。我正在寻找一个已经允许这种使用而不是自定义构建的平台。

  2. 我专注于 Pentaho,因为它似乎很好地集成了机器学习,但我读到的每个教程更多的是关于“临时”ML 分析而不是实时。欢迎任何有关该主题的教程。

  3. 我不介意开源或商业解决方案(带试用版)

  4. 根据具体情况,这可能不是大数据:也欢迎更多“传统”解决方案。

  5. 实时是一个广义的术语:如果 ML 模型具有良好的性能,每 5 秒运行一次就足够了。

  6. 机器学习模型是静态的(不是实时更新或改变其行为)

  7. 我并不是在为我的示例寻找定制应用程序,因为我的重点是大局:具有预测分析通用平台的大数据。

最佳答案

(我是 Mahout 的作者,正在将 Mahout 中的一些 ML 商业化,重点关注实时性和规模: Myrrix 。我不知道它是正是您正在寻找的内容,但似乎解决了您在此处提出的一些问题。它可能作为另一个引用点很有用。)

您强调了实时与大规模之间的紧张关系。这些不是同一件事。 Hadoop 作为一个计算环境,可扩展性很好,但无法实时执行任何操作。 Mahout 的一部分是构建的,Hadoop 也是这种形式的 ML。 Weka 和 Mahout 的其他部分或多或少都是实时的,但随后面临着扩展的挑战。

能够同时做好这两方面工作的机器学习系统必然具有两层:可扩展的离线模型构建,以及实时在线服务和更新。恕我直言,对于推荐器来说,这应该是这样的,例如:http://myrrix.com/design/

但是,您对模型构建没有任何问题,对吧?有人要建立静态模型吗?如果是这样,那就容易多了。实时更新模型很有用,但很复杂。如果不需要,您只需从静态模型中生成预测,这通常很快。

如果您对 ML 感兴趣,或者对基于您自己的 ML 模型运行某些东西感兴趣,我认为 Pentaho 不相关。

每 5 秒 1 次查询并不具有挑战性——这是每台机器每 5 秒 1 次查询还是什么?

我的建议是简单地创建一个可以回答针对模型的查询的服务器。只需重用任何旧的 HTTP 服务器容器(例如 Tomcat)即可。它可以加载从 HDFS 或 NoSQL DB 等后备存储发布的最新模型。您可以毫不费力地创建 N 个服务器实例,因为它们似乎不需要通信。

唯一的自定义代码是包装 ML 模型所需的任何代码。如果您确实不需要构建自己的模型或动态更新它们,那么这是一个非常简单的问题。如果你这样做——更难的问题,但仍然可以进行架构设计。

关于machine-learning - 大数据实时机器学习应用的生产架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13747670/

相关文章:

php - 如何在收到电子邮件时实时解析电子邮件

python - 如何使用下载的bigml模型进行本地预测?

android - 使用存储在 android sqlite 数据库中的数据作为 weka 的输入

python - 在 python 中更改 SVM 的 C 参数

machine-learning - 有哪些好的且广泛使用的评估指标来测试提取文本摘要方法的准确性?

real-time - 实时系统中迟到、迟到、松懈和临界之间的差异

php - 用于在后台更新 mysql 数据库的守护程序软件

python - 我如何在加载模型和训练一个类时编码器转换一个类

c# - 将 Mallet 作为二元分类器应用于文档分类

plot - 如何在 Weka Explorer 中将可视化绘图导出为 png