【发布时间】:2015-11-27 07:25:13
【问题描述】:
我有一个项目,简要如下:创建一个可以接受用 Java 编写的任务的应用程序,这些任务执行某种计算并在多台机器上运行任务*(任务是独立的,彼此不依赖) .
*机器可能运行不同的操作系统(主要是 Windows 和 Ubuntu)
我的问题是,我应该为此使用像 Apache Mesos 这样的分布式系统吗?
我首先研究的是 Java P2P 库/框架,而我唯一能找到的是已被 Oracle 放弃的 JXTA (https://jxta.kenai.com/)。 然后我研究了 Apache Mesos (http://mesos.apache.org/),它在我看来很合适,一个可以在多台机器上运行的底层系统,允许它在处理任务时共享资源。我花了一点时间试图让它在本地运行作为一个例子,但它似乎有点复杂并且需要很长时间才能开始工作。
如果我应该使用 Mesos,我是否必须为我的项目开发一个框架来处理我所有的 java 任务,或者是否有现有的解决方案?
要在本地进行小规模测试,您是否会将其安装在您的机器上,将其设置为主机,创建一个 VM,将其安装在该机器上并使其成为从机,以某种方式将您的从机路由到该主机?文档和示例没有显示如何将网络上的从站准确连接到主站。
在此先感谢,任何帮助或建议将不胜感激。
【问题讨论】:
-
你的用例匹配传统的grid computing吗?
-
@marbu 我快速浏览了一下,但还没有考虑任何解决方案。明天我会看看它,快速谷歌搜索已经抛出了jppf.org,看起来很有希望。
-
也许吧?类似于 Mesos 的所有主要替代品似乎都在docs.deis.io/en/latest/customizing_deis/choosing-a-scheduler 处进行了一些描述(虽然不知道该网站的产品是什么),但是所有这些系统的设置都很复杂,还不能解决您的问题。这更适用于操作大规模部署,而不是真正专门用于计算任务。
-
看看 Akka。与使用 Mesos 相比,您可以轻松构建您提议的系统,而且开销更少(Mesos 没什么问题,只是可能有点矫枉过正)。
标签: java p2p distributed-computing mesos jxta