我正在AWS上构建一个测试应用程序。我有一个拥有应用程序的“主”机器。有时,我希望能够将处理工作卸载到一些按需从机上。假设一个实例化的从机,只需要最少的软件(不包括我的主应用程序),我如何才能将Python代码的功能单元“发送”给一个或多个从机来执行?在
我知道并承认,由于许多原因,这种体系结构可能不是最佳的——而且我知道,如果我能在启动时在实例上预装相关代码,它会更简单。但是,假设我们有一个硬约束,即从实例不能被预加载到操作系统和一些基本库之外——例如,如果我想在另一台机器上喷射一些生成的代码呢?在
编辑:StackOverflow是一个该死的热门资源!感谢大家的回复。令人惊叹的。给我几天时间,我会回来报到的。在
你可以调查XMLPRClib
它需要一点设置,但一旦设置好,就非常像调用本地函数。在
我已经多次遇到这个问题了。在
选项1-
eval()
当我想快速解决某个问题时,我使用^{} 或它在stdlib中的一个表亲。将源代码传输到主节点,然后编译和评估:
只要从客户机到服务器获取源的传输是可信的,并且源代码需要采取的操作相对简单,这就可以工作。有几次,我需要在主从机之间进行更紧密的集成,需要大量的来回处理或复杂的数据结构。在这些情况下,我使用Pyro。在
方案2-派洛
Pyro是一个完整的跨平台的Python远程方法执行库。我在生产环境中使用它将处理从linux机器发送到windows机器,然后再发送回来,它非常稳定。在
他们的文档中的示例:
大师:
^{pr2}$从属:
输出:
Pyro最棒的地方是“
import greeting
”行客户端.py--代码来自服务器。如果您是从裸操作系统安装开始的,那么在启动新实例之后,您可以下推一个python脚本,用SSH托管客户端代码。这样你就有了一个很好的基础设施。在
我不能再详细地介绍这两种方法在AWS中的应用,也无法将它们与AWS基础设施提供的实用程序进行比较。欢迎您的意见或讨论。在
使用SSH将代码scp到slave。使用专用于此目的的EC2密钥对设置从机。把EC2钥匙对放在主机上。这是简单和快速的设置。在
另一个选择是使用AWS Elastic MapReduce和dumbo或{a2}来管理从属服务器。这是更多的工作来设置,但将更强大的失败,为您提供任务跟踪功能,等等
相关问题 更多 >
编程相关推荐