我有一个双节点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
答案 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实例中指定节点类型