2011-01-14 36 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檢查兵馬俑。