我试图了解如何使用内存加速器在单个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。
提前致谢!
答案 0 :(得分:0)
我试图运行这个例子,它对我有用。此错误实际上意味着至少有一个节点(名称为jvm-node-0
的节点)未启动。我认为在启动过程中有一些异常没有显示,因为它是在一个线程池中执行的。我建议用try-catch包围G.start(cfg)
调用并打印堆栈跟踪。
至于从脚本开始,您可以创建自己的主类,它将启动您需要的节点(就像在示例中所做的那样)并将其全名设置为MAIN_CLASS
环境变量。 ggstart.sh
将自动使用它而不是默认的主类,它始终只为每个VM启动一个节点。
答案 1 :(得分:0)
此外,我建议迁移到Aapche Ignite,因为GridGain Open Source版本已捐赠给ASF。