2017-09-10 104 views
2

我有三个节点(服务器)Apache Ignite集群,只有一个客户端。我正在使用基于磁盘的永久存储。我创建了值得10M记录的缓存。在某些时候,群集崩溃了,所以我想重新启动。这就是我遇到的:Apache Ignite集群不以永久存储器启动

  1. 当我重新启动服务器节点时,它会引发以下异常。我已经复制下面的例外消息。
  2. 客户端块,它不会做任何事情,我没有看到任何异常消息,但它似乎阻止与以下消息。
  3. 我在这里包含了default-config.xml。

任何帮助解决这个问题将不胜感激。谢谢。

服务器端异常

SEVERE: Failed to initialize cache. Will try to rollback cache start routine. [cacheName=geo10] 
class org.apache.ignite.IgniteCheckedException: Failed to verify store file (invalid page size) [expectedPageSize=4096, filePageSize=2048] 
     at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore.checkFile(FilePageStore.java:185) 
     at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore.init(FilePageStore.java:392) 
     at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore.read(FilePageStore.java:291) 
     at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.read(FilePageStoreManager.java:288) 
     at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.read(FilePageStoreManager.java:273) 
     at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:569) 
     at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:487) 
     at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.getOrAllocateCacheMetas(GridCacheOffheapManager.java:515) 
     at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.initDataStructures(GridCacheOffheapManager.java:86) 
     at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.start(IgniteCacheOffheapManagerImpl.java:139) 
     at org.apache.ignite.internal.processors.cache.CacheGroupContext.start(CacheGroupContext.java:868) 
     at org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCacheGroup(GridCacheProcessor.java:1935) 
     at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1860) 
     at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:748) 
     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onClusterStateChangeRequest(GridDhtPartitionsExchangeFuture.java:773) 
     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:574) 
     at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1901) 
     at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
     at java.lang.Thread.run(Thread.java:745) 

Sep 10, 2017 2:42:46 PM org.apache.ignite.logger.java.JavaLogger error 
SEVERE: Failed to perform final activation steps [nodeId=2077e165-e8a2-4989-934c-c24c5c0bea80, client=false, topVer=AffinityTopologyVersion [topVer=1, minorTopVer=1]] 
java.lang.NullPointerException 
     at org.apache.ignite.internal.processors.service.GridServiceProcessor.onKernalStart0(GridServiceProcessor.java:240) 
     at org.apache.ignite.internal.processors.service.GridServiceProcessor.onActivate(GridServiceProcessor.java:370) 
     at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$5.run(GridClusterStateProcessor.java:576) 
     at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6664) 
     at org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:817) 
     at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 

class org.apache.ignite.IgniteException: null 
     at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:957) 
     at org.apache.ignite.internal.IgniteKernal.active(IgniteKernal.java:3427) 
     at com.accure.ignite.IgniteStarter.main(IgniteStarter.java:24) 
Caused by: class org.apache.ignite.IgniteCheckedException: null 
     at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$GridChangeGlobalStateFuture.onAllReceived(GridClusterStateProcessor.java:816) 
     at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$GridChangeGlobalStateFuture.onResponse(GridClusterStateProcessor.java:809) 
     at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.processChangeGlobalStateResponse(GridClusterStateProcessor.java:673) 
     at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.sendChangeGlobalStateResponse(GridClusterStateProcessor.java:639) 
     at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.access$2200(GridClusterStateProcessor.java:72) 
     at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$5.run(GridClusterStateProcessor.java:597) 
     at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6664) 
     at org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:817) 
     at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
     Suppressed: class org.apache.ignite.IgniteCheckedException: Failed to perform final activation steps 
       at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$5.run(GridClusterStateProcessor.java:589) 
       ... 6 more 
     Caused by: java.lang.NullPointerException 
       at org.apache.ignite.internal.processors.service.GridServiceProcessor.onKernalStart0(GridServiceProcessor.java:240) 
       at org.apache.ignite.internal.processors.service.GridServiceProcessor.onActivate(GridServiceProcessor.java:370) 
       at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$5.run(GridClusterStateProcessor.java:576) 
       ... 6 more 
[14:43:18] Topology snapshot [ver=2, servers=1, clients=1, CPUs=8, heap=18.0GB] 
Sep 10, 2017 2:43:18 PM org.apache.ignite.logger.java.JavaLogger error 
SEVERE: Error when executing service: null 
java.lang.NullPointerException 
     at org.apache.ignite.internal.processors.service.GridServiceProcessor.serviceEntries(GridServiceProcessor.java:1289) 
     at org.apache.ignite.internal.processors.service.GridServiceProcessor.access$2000(GridServiceProcessor.java:119) 
     at org.apache.ignite.internal.processors.service.GridServiceProcessor$TopologyListener$1.run0(GridServiceProcessor.java:1578) 
     at org.apache.ignite.internal.processors.service.GridServiceProcessor$DepRunnable.run(GridServiceProcessor.java:1806) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 

客户端异常

[14:43:15] Message queue limit is set to 0 which may lead to potential OOMEs when running cache operations in FULL_ASYNC or PRIMARY_SYNC modes due to message queues growth on sender and receiver sides. 
[14:43:16] Security status [authentication=off, tls/ssl=off] 
[14:43:16] REST protocols do not start on client node. To start the protocols on client node set '-DIGNITE_REST_START_ON_CLIENT=true' system property. 

默认-config.xml中

<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"> 
    <!-- Enabling Apache Ignite Persistent Store. --> 
<property name="persistentStoreConfiguration"> 
     <bean class="org.apache.ignite.configuration.PersistentStoreConfiguration"/> 
    </property> 

    <property name="binaryConfiguration"> 
     <bean class="org.apache.ignite.configuration.BinaryConfiguration"> 
      <property name="compactFooter" value="false"/> 
     </bean> 
    </property> 

    <property name="memoryConfiguration"> 
     <bean class="org.apache.ignite.configuration.MemoryConfiguration"> 
      <!-- Setting the page size to 4 KB --> 
      <property name="pageSize" value="#{4 * 1024}"/> 
     </bean> 
    </property> 
    <!-- Explicitly configure TCP discovery SPI to provide a list of initial nodes. --> 
    <property name="discoverySpi"> 
     <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> 
      <property name="ipFinder"> 
       <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder"> 
        <property name="addresses"> 
         <list> 
          <!-- In distributed environment, replace with actual host IP address. --> 
          <value>127.0.0.1:55500..55502</value> 
         </list> 
        </property> 
       </bean> 
      </property> 
     </bean> 
    </property> 
</bean> 

在我对default-config进行更改以使用pageSize = 2Kb后,服务器仍然无法启动并显示以下异常消息。这是栈跟踪。

SEVERE: Failed to reinitialize local partitions (preloading will be stopped): GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=3, minorTopVer=0], nodeId=4a2cb984, evt=NODE_JOINED] 
class org.apache.ignite.IgniteCheckedException: WAL history is too short [descs=[org.apache.ignite.internal.processor[email protected]1d9, org.apache.ignite.internal.processor[email protected]1da, org.apache.ignite.internal.processor[email protected]1db, org.apache.ignite.internal.processor[email protected]1dc, org.apache.ignite.internal.processor[email protected]1dd, org.apache.ignite.internal.processor[email protected]1de, org.apache.ignite.internal.processor[email protected]1df, org.apache.ignite.internal.processor[email protected]1e0, org.apache.ignite.internal.processor[email protected]1e1, org.apache.ignite.internal.processor[email protected]1e2, org.apache.ignite.internal.processor[email protected]1e3, org.apache.ignite.internal.processor[email protected]1e4], start=FileWALPointer [idx=0, fileOffset=0, len=0, forceFlush=false]] 
+1

它是2.0还是2.1点燃版本? – Michael

+0

Michael,这是Ignite 2.1 – Sam

+3

是否在重新启动后更改了页面大小:?例外说:org.apache.ignite.IgniteCheckedException:无法验证存储文件(无效页面大小)[expectedPageSize = 4096,filePageSize = 2048]看起来像首先运行具有默认值的服务器,然后将其更改为4096. – Michael

回答

1

貌似首先,你开始节点使用默认的pageSize后来你把它改为:

所以现在的Ignite无法读取存储的文件,因为它有望与pageSize的4KB,而实际存储文件找到它有页面大小2kb。

尝试将其重新设置为2kb。

+0

Michael,感谢您的快速回复。我评论说设置为使用2kb的默认页面大小。我现在看到一个不同的错误。我在原始问题中包含了错误信息。 – Sam