需要建议!Java集群程序?

需要建议!Java集群程序?,java,hadoop,parallel-processing,grid,cluster-computing,Java,Hadoop,Parallel Processing,Grid,Cluster Computing,我正在寻找一个集群程序,我可以并行计算Java作业。我看了看Rockscluster和Hadoop。使用Rockscluster的问题在于它需要Unix中的脚本并行运行计算。然而,我想做的是用Java本身将作业发送给工人,以便工人计算作业并返回值。这是因为我的作业由许多不同的用户决定,在运行作业之前不能编写脚本。另外,使用Hadoop的问题是它使用MapReduce工具,但我认为我的Java工作并没有从MapReduce方案中受益 我想要的很简单。我想将作业发送到其他计算机节点并接收结果。我所有

我正在寻找一个集群程序,我可以并行计算Java作业。我看了看Rockscluster和Hadoop。使用Rockscluster的问题在于它需要Unix中的脚本并行运行计算。然而,我想做的是用Java本身将作业发送给工人,以便工人计算作业并返回值。这是因为我的作业由许多不同的用户决定,在运行作业之前不能编写脚本。另外,使用Hadoop的问题是它使用MapReduce工具,但我认为我的Java工作并没有从MapReduce方案中受益

我想要的很简单。我想将作业发送到其他计算机节点并接收结果。我所有发送给工人的工作都是独立的,所以我不必担心依赖btw工作。简单的工作。另外,我想用Java本身实现这些并行化。当我向调度器发送多个作业时,我希望调度器设置队列并自动将一些作业发送到可用节点,并将结果返回给用户。我不需要像自己选择节点发送作业这样的奇特功能

为了更好地解释,让我在下面举个例子。假设有一个user1正在处理Java。他主要在电脑里做三次计算。下面是他的密码

`公共类多椭圆{

public static void main(String[] args){
    Multiplecal calobj= new Multiplecal();
    int result1, result2, result3;
    result1=calobj.addtwo(5);
    result2=calobj.addthree(6);
    result3=calobj.addfour(7);
}
public int addtwo(int n){
    return (n+(n-1));
}
public int addthree(int n){
    return (n+(n-1)+(n-2));
}
public int addfour(int n){
    return (n+(n-1)+(n-2)+(n-3));
}
public static void main(String[] args){
    Multiplecal calobj= new Multiplecal();
    int result1, result2, result3;
    result1=service.send("Multiplecal", "addtwo", 5);
    result2=service.send("Multiplecal", "addthree", 6);
    result3=service.send("Multiplecal", "addfour", 7);
}
}`

然而,user1希望通过使用一些集群程序来获得result1、result2、result3。如果存在一个称为服务的API,那么他的主代码可能如下所示

进口服务。*

`公共类多椭圆{

public static void main(String[] args){
    Multiplecal calobj= new Multiplecal();
    int result1, result2, result3;
    result1=calobj.addtwo(5);
    result2=calobj.addthree(6);
    result3=calobj.addfour(7);
}
public int addtwo(int n){
    return (n+(n-1));
}
public int addthree(int n){
    return (n+(n-1)+(n-2));
}
public int addfour(int n){
    return (n+(n-1)+(n-2)+(n-3));
}
public static void main(String[] args){
    Multiplecal calobj= new Multiplecal();
    int result1, result2, result3;
    result1=service.send("Multiplecal", "addtwo", 5);
    result2=service.send("Multiplecal", "addthree", 6);
    result3=service.send("Multiplecal", "addfour", 7);
}
。。。。 }`

服务API将把每个类名、方法名和输入参数发送给并行程序管理器。然后,并行程序管理器将这些作业分发给节点工人。由于Worker已经有多个类,所以他们可以通过匹配从服务API发送的类和方法来获得结果。工作人员完成工作后,会将结果返回给user1

我上面提到的只是我正在努力做的大局图。并行化的参数格式不必像上面那样。如果你知道一个很好的设置集群和并行化Java作业的软件,请给我你有价值的建议


谢谢

现在有很多网格计算/集群中间件。您可能想看看master/worker、map/reduce或spark: