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

Alf*_*TeK 11 pentaho real-time machine-learning weka mahout

我开始学习一些关于大数据的东西,主要关注预测分析,为此我想要实现一个案例研究:

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

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

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

那么,任何人都可以对这样的生产系统有所了解(用预测分析显示数据)吗?这个参考架构?教程/文档?


笔记:

  1. 我调查了一些相关的技术:cloudera/hadoop,pentaho,mahout和weka.我知道Pentaho能够存储大数据并对该数据进行特殊的Weka分析.使用cloudera和Impala,数据专家也可以运行即席查询并分析数据,但这不是我的目标.我希望我的系统运行ML模型,并在检索到的数据旁边的漂亮仪表板中显示结果.我正在寻找一个已经允许这种用法而不是自定义构建的平台.

  2. 我专注于Pentaho,因为它似乎有一个很好的机器学习集成,但我读到的每个教程更多的是关于"ad-hoc"ML分析而不是实时.任何关于该主题的教程都将受到欢迎.

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

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

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

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

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

Sea*_*wen 8

(我是Mahout的作者,正在将Mahout中某些ML的产品化商业化,重点放在实时和规模上:Myrrix.我不知道它正是你想要的,但是似乎解决了你在这里提出的一些问题.它可能是另一个参考点.)

你已经强调了实时和大规模之间的紧张关系.这些都不是一回事.Hadoop作为一种计算环境,可以很好地扩展,但不能实时执行任何操作.Mahout的一部分是构建的,Hadoop也是这种形式的ML.Weka和Mahout的其他部分或多或少都是实时的,但随后又面临着扩展的挑战.

一个完美的ML系统必然有两层:可扩展的离线模型构建,具有实时在线服务和更新.对于推荐人来说,这就是它应该看起来的样子,例如:http://myrrix.com/design/

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

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

每5秒进行一次查询并不具有挑战性 - 每台机器每5秒进行1次查询还是什么?

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

唯一的自定义代码就是你需要包装你的ML模型.如果您真的不需要构建自己的模型或动态更新它们,这是一个非常简单的问题.如果你这样做 - 更难的问题,但仍有可能为建筑师.