I have a project which briefly is as follows: Create an application that can accept tasks written in Java that perform some kind of computation and run the tasks on multiple machines* (the tasks are separate and have no dependency on one another).
*the machines could be running different OSs (mainly Windows and Ubuntu)
My question is, should I be using a distributed system like Apache Mesos for this?
The first thing I looked into was Java P2P libraries/ frameworks and the only one I could find was JXTA (https://jxta.kenai.com/) which has been abandoned by Oracle. Then I looked into Apache Mesos (http://mesos.apache.org/) which seems to me like a good fit, an underlying system that can run on multiple machines that allows it to share resources while processing tasks. I have spent a little while trying to get it running locally as an example however it seems slightly complicated and takes forever to get working.
If I should use Mesos, would I then have to develop a Framework for my project that takes all of my java tasks or are there existing solutions out there?
To test it on a small scale locally would you install it on your machine, set that to a master, create a VM, install it on that and make that a slave, somehow routing your slave to that master? The documentation and examples don't show how to exactly hook up a slave on the network to a master.
Thanks in advance, any help or suggestions would be appreciated.
答案 0 :(得分:2)
您绝对可以将Mesos用于您所描述的任务。您不需要从头开始构建框架,而是可以使用Marathon之类的调度程序(如果您有长时间运行的任务),或Chronos用于一次性或重复性任务。
对于现实生活中的设置,您肯定希望拥有多台计算机,但如果您只感兴趣的话,您可以从一台计算机上运行所有内容(Mesos master,Mesos slave和框架)在实验中。 Mesos Getting Started Guide的Examples
部分演示了如何做到这一点。