我有数据项1,2,3 ..... n 我需要对所有数据项进行顺序计算。 n的值非常大,约为600,000或更多。数据来自文本文件,文件大小通常超过2GB
我有java程序在循环中执行计算。处理时间通常需要超过24小时。我需要使用集群来最小化处理时间并将作业分发到不同的集群节点。
目前我在本地计算机上使用4个CPU内核执行并行处理。这件作品被分成几块,分为四个核心。当一个核心完成一部分工作时,下一个部分被加载。因此,将有一个队列和4个核心并行处理队列。
哪个群集应用程序对企业级的java有用? 我需要更改程序代码吗? 集群程序是否在不修改Java代码的情况下工作? 如何拆分作业并将作业分配到不同的集群? 我是否需要将数据文件上传到所有群集节点?
我将非常感谢你的帮助。
答案 0 :(得分:0)
您可以使用JMS队列,而不是使用本地队列。 ActiveMQ是一个简单易用的JMS服务器。您可以拥有任意数量的侦听器节点,只需将任务添加到此队列即可。
答案 1 :(得分:0)
您考虑过Infinispan了吗?您可以将数据加载到Infinispan中,然后将其分布到群集中,然后在整个群集中将计算作为Map / Reduce任务运行。另见http://infinispan.blogspot.com/2011/01/introducing-distributed-execution-and.html。