点燃本地节点二进制配置不等于远程节点配置

问题描述 投票:0回答:1

我使用Ignite docker映像在本地计算机上设置一个点燃集群。只要我使用默认配置,一切就可以正常进行。当我尝试使用命令覆盖配置时

docker run -d --name my_ignite \
 -p 11211:11211 -p 47100:47100 -p 47500:47500 -p 49112:49112  \
 -e “OPTION_LIBS=ignite-indexing”  \
 -e "CONFIG_URI=file:///Users/abc/Documents/ignite_configs/ignite-config.xml" \
 -v $(pwd):/Users/abc/Documents/ignite_configs  apacheignite/ignite:2.7.0

Ignite正确启动,但是当我尝试写入缓存时,出现以下异常。

我的配置文件ignite-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
    <property name="binaryConfiguration">
      <bean class="org.apache.ignite.configuration.BinaryConfiguration">
        <property name="idMapper">
            <bean class = "org.apache.ignite.binary.BinaryBasicIdMapper">
              <property name = "lowerCase" value = "true"/>
            </bean>
        </property>
      </bean>
    </property>
  </bean>
</beans>

我该如何解决?

Stacktrace:

2020-05-20 14:34:49 [main] WARN  o.a.i.i.p.c.d.d.t.PartitionsEvictManager - Logging at INFO level without checking if INFO level is enabled: Evict partition permits=4
2020-05-20 14:34:50 [tcp-client-disco-msg-worker-#4%fn_Instance_979931923%] ERROR ROOT - Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=[SYSTEM_WORKER_BLOCKED]]], failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class o.a.i.IgniteException: GridWorker [name=tcp-client-disco-msg-worker, igniteInstanceName=svexecfn_Instance_979931923, finished=true, heartbeatTs=1590010490223]]]
org.apache.ignite.IgniteException: GridWorker [name=tcp-client-disco-msg-worker, igniteInstanceName=svexecfn_Instance_979931923, finished=true, heartbeatTs=1590010490223]
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1831)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1826)
    at org.apache.ignite.internal.worker.WorkersRegistry.onStopped(WorkersRegistry.java:169)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:153)
    at org.apache.ignite.spi.discovery.tcp.ClientImpl$1.body(ClientImpl.java:304)
    at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
2020-05-20 14:34:50 [main] ERROR o.a.i.i.IgniteKernal%svexecfn_Instance_979931923 - Failed to start manager: GridManagerAdapter [enabled=true, name=o.a.i.i.managers.discovery.GridDiscoveryManager]
org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000, marsh=JdkMarshaller [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@7ed9ae94], reconCnt=10, reconDelay=2000, maxAckTimeout=600000, forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null]
    at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:300)
    at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:939)
    at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1682)
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1066)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2038)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1730)
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1158)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:678)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:603)
    at org.apache.ignite.Ignition.start(Ignition.java:323)
...
Caused by: org.apache.ignite.spi.IgniteSpiException: Local node's binary configuration is not equal to remote node's binary configuration [locNodeId=4fc2317b-a7b5-43e0-bc37-20747fab2d73, rmtNodeId=a7ce1554-64cb-4de1-a71f-5c3ddb252ffa, locBinaryCfg=null, rmtBinaryCfg={globIdMapper=org.apache.ignite.binary.BinaryBasicIdMapper, compactFooter=true, globSerializer=null}]
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:1946)
    at org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.body(ClientImpl.java:1888)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
    at org.apache.ignite.spi.discovery.tcp.ClientImpl$1.body(ClientImpl.java:304)
    at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
ignite
1个回答
0
投票

查看所有节点的二进制配置:https://apacheignite.readme.io/docs/binary-marshaller#configuring-binary-objects

您有:本地节点的二进制配置不等于远程节点的二进制配置[locNodeId = 4fc2317b-a7b5-43e0-bc37-20747fab2d73,rmtNodeId = a7ce1554-64cb-4de1-a71f-5c3ddb252ffa,locBinaryCfg = null,rmt = {globIdMapper = org.apache.ignite.binary.BinaryBasicIdMapper,compactFooter = true,globSerializer = null}]

这意味着您正在从具有不同二进制配置的节点插入。看一下4fc2317b-a7b5-43e0-bc37-20747fab2d73的二进制配置,它应该与远程节点相同。

© www.soinside.com 2019 - 2024. All rights reserved.