【问题标题】:distributed scheduling system for R scriptsR 脚本的分布式调度系统
【发布时间】:2012-01-29 16:20:21
【问题描述】:

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

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

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

2/ 一个似乎被广泛使用的库是带有 Apache Hadoop 的 mapReduce。 我对这个框架没有经验。对于我的目的,您会建议什么安装/插件/设置?

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

【问题讨论】:

  • 虽然我是 Hadoop 的粉丝,但我不会在这种情况下推荐它。当基础设施几乎是同质的,并且一个只有需要解决包一致性时,这已经够令人沮丧了。必须在不同系统的特殊网格上解决各种问题是另一回事。对于这种情况,我考虑的唯一方法是使用虚拟机,这样您就可以获得一个近似同质的计算环境。 Virtualbox 是一种流行的虚拟机,如果你确实走这条路的话。

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


【解决方案1】:

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

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

如果运行 Hadoop 的机器专用于集群而不是借用,则 Hadoop 效果最佳。设置 Hadoop 也有相当大的开销,如果您需要 Hadoop 提供的 map/reduce 算法和分布式存储,则值得付出努力。

那么,您的配置到底是什么?您是否有一个充满了您想要在其上分配 R 工作的机器的办公室?你有专用集群吗?这将是 EC2 还是其他基于“云”的?

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

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

【讨论】:

  • 它仍然是一个杂牌。作业分配是一个与并行计算一样古老的问题,如今的孩子们冒着错失这一点的风险,他们假装并行计算是从 Hadoop 开始的。但是您注意到 OP 严重低估了他的问题是非常正确的。
  • 我认为所有的计算都是一团糟。一段时间后,我们就会对某些问题感到满意:)
  • 您一直在运行市场领先供应商的一系列操作系统,不是吗?
  • 不。但是我今天一直在使用 Excel(上帝帮助我)所以也许这就是情绪的来源:)
  • @Dirk Eddelbuettel:你对这个问题有什么建议,而且这不是(或更少)一个拼凑?
【解决方案2】:

TakTukdsh 为起点。您或许可以使用psshclusterssh 推出自己的机制,尽管这些可能会更费力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 2013-04-02
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2015-05-26
    • 2020-08-05
    相关资源
    最近更新 更多