Ignition.ignite returns "Grid instance was not properly started or was already stopped"

Ignition.ignite returns "Grid instance was not properly started or was already stopped"

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

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

我使用的是 ignite-core:1.4.0,我在启动 ignite 时没有任何问题

IgnitionEx.start(igniteConfigurationAdapter);

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

可能您没有在 IgniteConfiguration 实例中指定节点类型

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

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