我开始学习一些关于大数据的东西,重点放在预测分析上,为此,我想实施一个案例研究:
我有一个服务器健康信息数据集,每5秒进行一次轮询。我想显示检索到的数据,但更重要的是:我希望运行先前构建的机器学习模型并显示结果(警告服务器将崩溃)。
机器学习模型将由机器学习专家建立,因此这是完全超出范围的。我的工作是将机器学习模型集成到一个运行该模型并在一个不错的仪表板上显示结果的平台中。
我的问题是这个系统的“大图”架构:我看到所有的部分都已经存在(cloudera+mahout),但是我缺少一个简单的集成解决方案来满足我的所有需求,我不相信最新的技术是在做一些定制的软件.
那么,有人能对这样的生产系统(用预测分析显示数据)有所了解吗?这个参考架构?教程/文档?
备注:
发布于 2012-12-06 17:01:14
(我是“Mahout”一书的作者之一,并且正在将Mahout中的一些ML商品化,重点关注实时和规模:http://myrrix.com/。我不知道这到底是你想要的,但似乎解决了你在这里提出的一些问题。它可能作为另一个参考点有用。)
你强调了实时和大规模之间的紧张关系。这不是一回事。Hadoop作为一个计算环境,具有很好的扩展性,但却不能实时运行.Mahout的一部分是构建的,Hadoop和那个形式的ML也是。Weka和Mahout的其他部分都倾向于或多或少地实时化,但随后却面临着规模的挑战。
两者都做得很好的ML系统必须有两层:可伸缩的离线模型构建,具有实时在线服务和更新。这就是它应该如何看待推荐者,例如:http://myrrix.com/design/。
但是,你对模型的建立没有任何问题,对吗?有人要建一个静态模型吗?如果是这样的话,那就容易多了。实时更新您的模型是有用的,但很复杂。如果没有必要,你只是从静态模型中生成预测,这通常是快速的。
如果您对ML感兴趣,或者运行基于您自己的ML模型的东西,那么我不认为宾得是相关的。
每5秒1次查询并不具有挑战性--这是每5秒1次查询吗?
我的建议是简单地创建一个服务器,该服务器可以根据模型回答查询。只需重用任何老的HTTP服务器容器,比如Tomcat。它可以加载最新的模型,因为它是从某些备份存储发布的,比如HDFS或NoSQL DB。您可以毫不费力地创建服务器的N个实例,因为它们似乎不需要通信。
这里唯一的自定义代码是包装ML模型所需的任何东西。如果您真的不需要构建您自己的模型或动态更新它们,这是一个非常简单的问题。如果你这么做了--更难的问题,但仍然有可能成为建筑师。
发布于 2013-10-31 15:22:57
您可以使用Apache或S4或Storm的组合来配置您自己的数据流分析,并注入您选择的机器学习算法的并行和分布式版本。但大规模并行机器学习算法是一项具有挑战性的工作,也是一个活跃的研究领域。最近取得了一些进展:你可能想看看雅虎!萨摩亚和沃巴瓦比特实验室
发布于 2012-12-06 16:19:28
有点像NewRelic
统计
架构
- Web UI - Ruby on Rails
- nginx
- Linux
- 2 @ 12 core Intel Nehalem CPUs w/ 48Gb RAM
- Data Collector and Web Beacon Services - Java
- Servlets on Jetty
- App metrics collector: 180k+ requests per minute, responding in 3ms
- Web metrics beacon service: 200k+ requests per minute, responding in 0.15ms
- Sharded MySQL using the Percona build
- Linux
- 9 @ 24 core Intel Nehalem w/ 48GB RAM, SAS attached RAID 5
- Bare metal (no virtualization)
奖金
更多信息:http://highscalability.com/blog/2011/7/18/new-relic-architecture-collecting-20-billion-metrics-a-day.html
https://stackoverflow.com/questions/13747670
复制相似问题