Apache Ignite:无法启动集群中的 2.11 Ignite 节点

Apache Ignite: Unable to start 2.11 Ignite nodes in a cluster

我是 运行 Kubernetes 环境中的 Apache Ignite 作为有状态集。 Ignite 2.10 中的一切都按预期工作。当我尝试将 Ignite 版本升级到 2.11 并创建一个新的 Ignite 集群时,节点没有启动并且出现以下错误:

[20:47:02,014][SEVERE][main][IgniteKernal] 启动处理器期间出现异常,节点将停止并关闭连接 class org.apache.ignite.IgniteCheckedException: 无法启动处理器:GridProcessorAdapter [] 在 org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:2006) 在 org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1270) 在 org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2141) 在 org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1787) 在 org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1172) 在 org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1066) 在 org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:952) 在 org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:851) 在 org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:721) 在 org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:690) 在 org.apache.ignite.Ignition.start(Ignition.java:353) 在 org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:367) Caused by: class org.apache.ignite.IgniteCheckedException: 无法启动 Jetty HTTP 服务器。 在 org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.loadJettyConfiguration(GridJettyRestProtocol.java:321) 在 org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.start(GridJettyRestProtocol.java:153) 在 org.apache.ignite.internal.processors.rest.GridRestProcessor.startProtocol(GridRestProcessor.java:1012) 在 org.apache.ignite.internal.processors.rest.GridRestProcessor.startHttpProtocol(GridRestProcessor.java:983) 在 org.apache.ignite.internal.processors.rest.GridRestProcessor.start(GridRestProcessor.java:534) 在 org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:2003) ... 11 更多 Caused by: java.lang.IllegalStateException: No matching constructor class org.eclipse.jetty.server.Server in file:///opt/ignite/apache-ignite/config/custom-jetty.xml 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:454) 在 org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:380) 在 org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.loadJettyConfiguration(GridJettyRestProtocol.java:318) ... 还有 16 个 [20:47:02,017][SEVERE][main][IgniteKernal] 启动时出现异常(将回滚启动例程)。 class org.apache.ignite.IgniteCheckedException: 无法启动处理器:GridProcessorAdapter [] 在 org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:2006) 在 org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1270) 在 org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2141) 在 org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1787) 在 org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1172) 在 org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1066) 在 org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:952) 在 org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:851) 在 org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:721) 在 org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:690) 在 org.apache.ignite.Ignition.start(Ignition.java:353) 在 org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:367) Caused by: class org.apache.ignite.IgniteCheckedException: 无法启动 Jetty HTTP 服务器。 在 org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.loadJettyConfiguration(GridJettyRestProtocol.java:321) 在 org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.start(GridJettyRestProtocol.java:153) 在 org.apache.ignite.internal.processors.rest.GridRestProcessor.startProtocol(GridRestProcessor.java:1012) 在 org.apache.ignite.internal.processors.rest.GridRestProcessor.startHttpProtocol(GridRestProcessor.java:983) 在 org.apache.ignite.internal.processors.rest.GridRestProcessor.start(GridRestProcessor.java:534) 在 org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:2003) ... 11 更多 Caused by: java.lang.IllegalStateException: No matching constructor class org.eclipse.jetty.server.Server in file:///opt/ignite/apache-ignite/config/custom-jetty.xml 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:454) 在 org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:380) 在 org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.loadJettyConfiguration(GridJettyRestProtocol.java:318) ... 还有 16 个

我使用 Ignite 配置中包含的 jetty.xml 文件作为连接器配置。 jetty.xml 具有 apache ignite 网页中提供的默认设置。 ignite-rest-http 文件夹也已复制到 lib 文件夹; OPTION_LIBS 环境变量也有这个模块来启用它。 None 的设置已更改,因此不确定 2.11 中有什么不同会导致此问题。在 Ignite 2.10 中一切正常。

您可以通过更改 threadPool 参数 -> threadpool in jetty XML 配置来修复它。

这是 Ignite 文档中的错误。我为此创建了一个 JIRA。查看详情 here