有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

爪哇点火。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) 个答案

  1. # 1 楼答案

    我使用ignite core:1.4.0,在启动ignite时没有问题

    IgnitionEx.start(igniteConfigurationAdapter);
    

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

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

  2. # 2 楼答案

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

    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