R脚本的分布式调度系统

时间:2011-12-29 06:21:38

标签: r hadoop parallel-processing distributed-computing scheduled-tasks

我想安排和分发几台机器--Windows或Ubuntu - (一项任务只在一台机器上)执行R脚本(例如使用RServe)。

我不想重新发明轮子,并且想要使用已经存在的系统以最佳方式分发这些任务,并且理想情况下有一个GUI来控制脚本的正确执行。

1 /是否有R包或可用于此的库?

2 /似乎使用得非常广泛的一个库是带有Apache Hadoop的mapReduce。 我没有这个框架的经验。你会为我的目的提供什么样的安装/插件/设置?

编辑:以下是有关我的设置的详细信息:
我确实有一个办公室,里面装满了机器(小型服务器或工作站),有时也用于其他用途。我想使用所有这些机器的计算能力并在其上分发我的R脚本 我还需要一个调度程序,例如。用于在修复时或定期安排脚本的工具。 我正在使用Windows和Ubuntu,但是对于其中一个系统来说,一个好的解决方案就足够了。 最后,我不需要服务器来取回脚本的结果。脚本执行的操作包括访问数据库,保存文件等,但不返回任何内容。如果有的话,我只想找回错误/警告。

2 个答案:

答案 0 :(得分:2)

如果你想要做的是在你有物理访问权限的机器上分配并行执行的作业,我 HIGHLY 推荐doRedis后端用于foreach。您可以阅读vignette PDF以获取更多详细信息。要点如下:

  

为什么要写一个doRedis包?毕竟,foreach包已经   有许多并行的后端软件包,包括doMC,doSNOW   和doMPI。 doRedis包允许动态的工作池。   即使在跑步过程中,也可以随时添加新工人   计算。例如,此功能与现代云相关   计算环境。用户可以做出经济决策   关于“随时加速计算资源以加速   运行计算。同样,现代的doRedis Package集群   资源分配系统可以动态调度R工作者   群集资源可用

如果运行Hadoop的计算机专用于群集而非借用,则Hadoop效果最佳。设置Hadoop还有相当大的开销,如果你需要Hadoop提供的map / reduce算法和分布式存储,这是值得的。

那么,你的配置到底是什么?你有一个办公室,里面装满了你想要分发R工作的机器吗?你有专门的集群吗?这是EC2还是其他“云”?

魔鬼在细节中,如果细节是明确的,你可以得到更好的答案。

如果您希望工作人员完成工作并将作业的结果重新配置回一个主节点,那么使用专用的R解决方案会更好,而不是像TakTuk或dsh那样更通用的并行化系统工具。

答案 1 :(得分:1)

TakTukdsh作为起点。您可以使用psshclusterssh来推广自己的机制,但这些可能会更省力。