2011-01-14 38 views
0

给定关于群集中的机器(IP地址/机器名称)和程序(Java语言)运行的信息,是否有可用的软件(管理器)会执行该程序并将输出返回与每台机器上的运行时间?分布式程序执行管理器

目前,我正在使用shell脚本来执行此操作,但我无法花费时间(以秒为单位)运行java程序。如果有一些分布式程序执行管理器就像我上面描述的那样,那将是一件好事。

+0

你是什么意思“运行时间?” – skaffman 2011-01-14 21:10:30

+0

运行时间我的意思是运行java程序所用的时间(以秒为单位) – Raghava 2011-01-14 21:37:51

回答

1

您可以简单地使用类似于tentakelshmux的脚本来在多个节点上并行运行应用程序,而不是编写自己的脚本。您可以运行tentakel为

tentakel 'time <your application name>' 

以获取应用程序运行所需的输出和时间。

1

我喜欢用Hudson这样的东西。它最初是为执行软件构建和测试而编写的,但是它比这更通用。基本上是一个控制器,用于管理作业和执行以及客户端以在节点上部署。如果您可以灵活地为特定的分布式计算框架重新编写应用程序,则可以使用Hadoop

+0

谢谢您的回复。我记住了Hadoop,对不起,我没有提到。我想要一个像Hadoop中的作业控制器一样的功能。与其在所有节点上运行map&reduce的方式类似,我希望我的管理器在所有节点上运行我的java程序并收集输出。 – Raghava 2011-01-14 22:01:19

+0

哈德森会让你做到这一点,而不会对你的程序做任何改变。它可以在安装有从站的主机上调用任意命令,将结果(命令输出和您指定的文件)发送回控制器机器,并在必要时进行审查。您可以设置作业以根据其他作业的结果进行触发,创建排列矩阵以执行等。 – 2011-01-14 22:07:15

0

我不明白你的问题。你想回到什么“运行时间”?您使用的是什么群集解决方案?对于Java中的分布式通信,我会推荐JGroups。 FOr分布式JVM检查兵马俑。