2012-08-23 29 views
0

我正在寻找适用于以下场景的云计算解决方案,但在亚马逊AWS等与我的问题描述相匹配的服务中找不到任何服务。 您知道我的问题有任何云计算平台吗?用于实时计算密集型任务的云平台?

一般问题: 我想运行一些数据流的数据分析(每秒只有大约1k)。 数据分析是由一群独立的线程执行的,这些线程在数据流上运行。每个线程简单地计算一个布尔值。 我有更好的线程是计算结果。

我目前的解决方案: 我凑与其他部门的英特尔酷睿i7一箱,但现在他们想回去:-)。

理想的解决方案: 这为我提供了一个抽象的计算机(如拥有无限资源的一个JVM)上,我可以生成线程的大量某些服务。 此外还需要有某种连接来对输入数据进行流式处理并获取计算结果(每秒012kB)。事情应该实时发生(与预定在“未来几分钟”执行时相比)。

所以瓶颈是不是内存或磁盘空间,但只是计算能力和延迟。 (因为我需要不时地进行数据分析,所以云计算在这里看起来在经济上是合理的。)

回答

1

对于从各大厂商完整性你有几个类别的选择:

  1. 云计算它可以扩展,从AWS它的EC2;来自谷歌它的谷歌计算引擎(仍在私人测试版);来自微软的Azure虚拟机(还在私人测试版中)。当然,还有很多其他厂商,比如Rackspace(使用OpenStack等)。 鉴于你的情况,我相信这个类别的东西将是你最好的选择

  2. 基于云的MapReduce(在Hadoop上运行) - 来自AWS的Elastic MapReduce;来自Google,即BigQuery;来自Microsoft的Azure上的Hadoop(仍处于测试阶段)。还有其他供应商在这个空间以及... Cloudera,HortonWorks等... here's的一个列表。

  3. 基于云的数据库(无论是RDBMS还是NoSQL) - 这里有很多选择。由于您将您的场景描述为“计算密集型”,因此我认为这可能不是必需的。然而,根据上/下流量的频率,如果您的场景允许批量配置,那么您可以选择上传,处理并存储在云中,然后通过计划下拉。从AWS开始,可以有多种方式来托管RDBMS - RDS或EC2是通常的选择;对于Google,您可以通过Google Cloud SQL访问MySQL;对于Microsoft,您可以选择Azure虚拟机上的SQL Azure或SQL Server(后者仍处于测试阶段)。对于云托管的NoSQL,您有AWS DynamoDB; Google提供Google Cloud Storage或High Replication存储(后者要求您使用GAE);从Microsoft获得Azure存储(表,Blob和队列)。
1

对于您的情况,我会强烈建议您使用Amazon Elastic MapReduce。你可以参考这个文档了解详细信息: - Amazon EMR

如果你是AWS的新手,这可能有点困难,但一旦你知道它是如何工作的,它会很棒。

+0

您也可以使用高配置的EC2实例,但它们可能会非常昂贵。如果我知道你正在寻找什么确切的服务器配置,我可以给出更多的方向。 –

2

有趣的是,我只是写上Making Hadoop Run Faster帖子中,我指出了流的基本处理作为远象进来,而不是批量processnig他们加快饲料的处理时间。 该解决方案使用名为Cloudify的开源项目。

Cloudify允许我通过单个命令在Amazon或任何其他云上产生整个环境,并且随着负载增长自动扩展处理。

的演示环境的源代码,并一步引导一个步骤是提供here

这听起来对我来说,这可能会满足您的需求 - 让我知道这是不是这样的,我会来挖进一步看看我能否用其他解决方案来解决问题。