awsec2:如何处理具有100个并行EC2实例的队列?

2024-04-29 04:30:27 发布

您现在位置:Python中文网/ 问答频道 /正文

(ubuntu 12.04)。我设想使用某种队列来放置数千个任务,并让ec2设备并行地(100个ec2实例)处理队列中的一个任务。在

另外,每个ec2实例都要使用我提供的映像,其中将安装二进制文件和软件以供使用。在

基本上,我要做的是,在Amazon的EC2上并行运行100个处理(一个python函数,使用依赖于安装在该映像上的二进制文件的包),关闭它们,并在需要时重复这个过程。在

这可行吗?我使用Python Boto来完成这个任务。在


Tags: 文件实例函数amazon软件队列过程ubuntu
2条回答

这听起来可能更容易与电子病历。在

你在评论中提到你正在做计算机视觉。通过准备一个文件,其中每行都是图像文件的base64编码,可以使您的作业hadoop友好。在

您可以准备一个简单的引导脚本,以确保集群的每个节点都安装了您的软件。Hadoop流媒体允许您使用图像处理代码来完成任务(而不是用java重写)。在

作业结束后,集群实例将关闭。您还可以指定将输出直接流式传输到S3存储桶中,所有这些都是内置的。EMR也很便宜,100个m1.medium EC2实例运行一个小时只需花费2美元左右,根据最新的定价:http://aws.amazon.com/elasticmapreduce/pricing/

这是可行的。你应该考虑使用SQS。作业被放置在队列中,工作机实例将作业从队列中弹出并执行适当的工作。作业完成后,工作进程将从队列中删除该作业,因此不会有作业运行一次以上。在

您可以在引导时使用用户数据配置实例,也可以使用预安装的所有软件烘焙AMI。我推荐使用Packer来烘焙AMI,因为它工作得非常好,而且非常可编写脚本,因此您的AMI可以在需要更改时进行一致的重建。在

要打开和关闭大量实例,请考虑使用AutoScaling。只需将组的所需容量设置为您想要运行的worker实例的数量,它将负责其余的工作实例。在

相关问题 更多 >