GridGain:如何在同一个JVM中运行多个节点?

时间:2015-03-11 22:29:37

标签: java hadoop jvm gridgain

我试图了解如何使用内存加速器在单个JVM上下文中使用Gridgain运行Hadoop应用程序。

我已经看到了一些如何在here中以编程方式完成此操作的提示。但是在尝试在eclipse中运行此示例后,出现了这个错误:

Exception in thread "main" class org.gridgain.grid.GridIllegalStateException: Grid instance was not properly started or was already stopped: jvm-node-0
at org.gridgain.grid.kernal.GridGainEx.grid(GridGainEx.java:995)
at org.gridgain.grid.GridGain.grid(GridGain.java:395)
at test.GridJvmCloudExample.main(GridJvmCloudExample.java:66)

我所做的唯一修改是将第38行更改为GridConfiguration cfg = new GridConfiguration();。我能做什么的任何线索?必须说当时没有运行任何其他节点。

但我的目标是使用脚本。换句话说,将GridGain作为bin / ggstart.sh运行,启动共享同一JVM的多个节点。有没有办法做到这一点?我正在使用的版本是6.6.4。

提前致谢!

2 个答案:

答案 0 :(得分:0)

我试图运行这个例子,它对我有用。此错误实际上意味着至少有一个节点(名称为jvm-node-0的节点)未启动。我认为在启动过程中有一些异常没有显示,因为它是在一个线程池中执行的。我建议用try-catch包围G.start(cfg)调用并打印堆栈跟踪。

至于从脚本开始,您可以创建自己的主类,它将启动您需要的节点(就像在示例中所做的那样)并将其全名设置为MAIN_CLASS环境变量。 ggstart.sh将自动使用它而不是默认的主类,它始终只为每个VM启动一个节点。

答案 1 :(得分:0)

此外,我建议迁移到Aapche Ignite,因为GridGain Open Source版本已捐赠给ASF。