Ignition.ignite返回"网格实例未正确启动或已停止"

时间:2015-11-17 11:39:44

标签: java apache scala ignite

我有一个双节点Apache Ignite集群但是当我从scala shell调用Ignition.ignite或在我得到的任何机器上运行的java程序时:

org.apache.ignite.IgniteIllegalStateException: Grid instance was not properly started or was already stopped: null

我尝试在default-config.xml中命名群集:

<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
    <property name="gridName" value="grid"/>
</bean>

但那并没有奏效。节点是使用ignite.sh启动的,可以看到它们开始正常。

Topology snapshot [ver=2, servers=2, clients=0, CPUs=8, heap=2.0GB]

对我有用的唯一方法是使用Ignition.start([default-config.xml])然后使用Ignition.ignite("grid");但现在我的机器上运行了第二个实例:

Topology snapshot [ver=3, servers=3, clients=0, CPUs=8, heap=2.2GB]

Ignition.ignite是否有问题,或者我需要做些什么才能让它发挥作用?

我正在使用apache-ignite-fabric-1.4.0

2 个答案:

答案 0 :(得分:3)

您的客户端应用程序还需要启动节点。它将加入拓扑并提供与群集的连接。您很可能不希望此节点存储任何数据或执行作业。如果是这种情况,请在客户端模式下启动它:

Ignition.setClientMode(true);

Ignite ignite = Ignition.start(..);

在此之后您应该看到此拓扑快照(请注意,仍有2台服务器,但添加了1个客户端:

Topology snapshot [ver=3, servers=2, clients=1, CPUs=8, heap=2.2GB]

Ignition.ignite()方法可用于获取对已启动实例的引用。如果它尚未启动,则会抛出IllegalStateException

答案 1 :(得分:0)

我使用ignite-core:1.4.0并且在使用

启动点火时没有任何问题
IgnitionEx.start(igniteConfigurationAdapter);

其中igniteConfigurationAdapter只是一个IgniteConfiguration实例,您可以在其中指定要创建的节点类型。

也许您没有在IgniteConfiguration实例中指定节点类型