【问题标题】:Error during node startup: Unable to start DSE server / Plugin activation failed / Cannot find core节点启动时出错:无法启动 DSE 服务器/插件激活失败/找不到核心
【发布时间】:2015-04-15 01:26:20
【问题描述】:

这些问题我已经有很长一段时间了,但我最初忽略了它们,因为我仍然可以启动我的节点。但是,其中一个问题最近变得更加严重,现在我需要多次尝试才能成功启动节点。

问题 #1:无法启动 DSE 服务器/插件激活失败/找不到核心

ERROR [main] 2015-01-28 03:30:40,058 DseDaemon.java (line 492) Unable to start DSE server.
java.lang.RuntimeException: com.datastax.bdp.plugin.PluginManager$PluginActivationException: Plugin activation failed
        at com.datastax.bdp.plugin.PluginManager.activate(PluginManager.java:135)
        at com.datastax.bdp.server.DseDaemon.start(DseDaemon.java:480)
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:509)
        at com.datastax.bdp.server.DseDaemon.main(DseDaemon.java:659)
Caused by: com.datastax.bdp.plugin.PluginManager$PluginActivationException: Plugin activation failed
        at com.datastax.bdp.plugin.PluginManager.activate(PluginManager.java:284)
        at com.datastax.bdp.plugin.PluginManager.activate(PluginManager.java:128)
        ... 3 more
Caused by: java.lang.IllegalStateException: Cannot find core: myks.mycf
        at com.datastax.bdp.search.solr.core.SolrCoreResourceManager.doWaitForCore(SolrCoreResourceManager.java:742)
        at com.datastax.bdp.search.solr.core.SolrCoreResourceManager.waitForCore(SolrCoreResourceManager.java:478)
        at com.datastax.bdp.plugin.SolrContainerPlugin.waitForSecondaryIndexesLoading(SolrContainerPlugin.java:237)
        at com.datastax.bdp.plugin.SolrContainerPlugin.onActivate(SolrContainerPlugin.java:98)
        at com.datastax.bdp.plugin.PluginManager.initialize(PluginManager.java:334)
        at com.datastax.bdp.plugin.PluginManager.activate(PluginManager.java:263)
        ... 4 more
 INFO [Thread-3] 2015-01-28 03:30:40,059 DseDaemon.java (line 505) DSE shutting down...
 INFO [StorageServiceShutdownHook] 2015-01-28 03:30:40,164 Gossiper.java (line 1307) Announcing shutdown
 INFO [Thread-3] 2015-01-28 03:30:40,620 PluginManager.java (line 356) All plugins are stopped.
 INFO [Thread-3] 2015-01-28 03:30:40,620 CassandraDaemon.java (line 463) Cassandra shutting down...
 INFO [StorageServiceShutdownHook] 2015-01-28 03:30:42,165 MessagingService.java (line 701) Waiting for messaging service to quiesce
 INFO [ACCEPT-/144.76.201.233] 2015-01-28 03:30:42,814 MessagingService.java (line 941) MessagingService has terminated the accept() thread

此异常最初是一个“轻微”问题 - 轻微,因为虽然它会阻止节点在发生时启动,但通常需要我再尝试 1 次才能成功启动受影响的节点。然而,大约两周前,在很长一段时间没有重新启动我的任何节点之后,我发现我现在需要更多尝试(20 多次)才能启动一个节点。

从堆栈跟踪来看,它看起来像是一个超时问题(在 doWaitForCore() 中);但我找不到一个设置来增加 DSE 在启动期间等待内核加载然后放弃的时间。堆栈跟踪中提到的核心总是相同的,我认为这是因为它是我最大的核心(约 14 亿条记录)并且加载时间最长。但是当我成功启动节点时,没有任何错误迹象 - 我可以像查询任何其他核心一样查询核心。

--

还有两个其他问题可能与上述问题相关,也可能不相关。两者总是在启动时出现;并且与第一个不同,它们不会导致启动失败(即它们也会在节点成功启动时出现)

问题 #2:无效号码:静态

ERROR [searcherExecutor-67-thread-1] 2015-01-28 04:26:49,691 SolrException.java (line 124) org.apache.solr.common.SolrException: Invalid Number: static
        at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:396)
        at org.apache.solr.schema.FieldType.getFieldQuery(FieldType.java:697)
        at org.apache.solr.schema.TrieField.getFieldQuery(TrieField.java:343)
        at org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:741)
        at org.apache.solr.parser.SolrQueryParserBase.handleBareTokenQuery(SolrQueryParserBase.java:545)
        at org.apache.solr.parser.QueryParser.Term(QueryParser.java:300)
        at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:186)
        at org.apache.solr.parser.QueryParser.Query(QueryParser.java:108)
        at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:97)
        at org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:153)
        at org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:50)
        at org.apache.solr.search.QParser.getQuery(QParser.java:143)
        at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:135)
        at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:183)

我查看了导入的数据,但找不到错误地提供为“静态”的所谓数字值。在我编写的将 CSV 转换为 SSTables 的 Java 应用程序中,我根据字段类型将所有数值转换为 int/long/double,所以老实说,我认为这与我的数据无关。

问题 #3:无法获取信息 bean com.datastax.bdp.search.solr.FilterCacheMBean 上的统计信息

WARN [SolrSecondaryIndex myks.mycf2 index initializer.] 2015-01-28 04:26:51,770 JmxMonitoredMap.java (line 256) Could not getStatistics on info bean com.datastax.bdp.search.solr.FilterCacheMBean
java.lang.RuntimeException: java.lang.ClassCastException: org.apache.lucene.search.FieldCache$CreationPlaceholder cannot be cast to org.apache.solr.search.SolrCache
        at com.datastax.bdp.search.solr.FilterCacheMBean.getStatistics(FilterCacheMBean.java:185)
        at org.apache.solr.core.JmxMonitoredMap$SolrDynamicMBean.getMBeanInfo(JmxMonitoredMap.java:236)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getNewMBeanClassName(DefaultMBeanServerInterceptor.java:333)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:319)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
        at org.apache.solr.core.JmxMonitoredMap.put(JmxMonitoredMap.java:140)
        at org.apache.solr.core.JmxMonitoredMap.put(JmxMonitoredMap.java:51)
        at com.datastax.bdp.search.solr.core.CassandraCoreContainer.registerExtraMBeans(CassandraCoreContainer.java:679)
        at com.datastax.bdp.search.solr.core.CassandraCoreContainer.register(CassandraCoreContainer.java:427)
        at com.datastax.bdp.search.solr.core.CassandraCoreContainer.doLoad(CassandraCoreContainer.java:757)
        at com.datastax.bdp.search.solr.core.CassandraCoreContainer.load(CassandraCoreContainer.java:162)
        at com.datastax.bdp.search.solr.AbstractSolrSecondaryIndex$2.run(AbstractSolrSecondaryIndex.java:882)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: org.apache.lucene.search.FieldCache$CreationPlaceholder cannot be cast to org.apache.solr.search.SolrCache
        at com.datastax.bdp.search.solr.FilterCacheMBean.getStatistics(FilterCacheMBean.java:174)
        ... 16 more

我完全不知道这是什么。

--

以前有没有人遇到过这些错误/异常/警告?你做了什么?

【问题讨论】:

    标签: solr cassandra datastax-enterprise datastax


    【解决方案1】:

    问题 #1: 加载内核的最长等待时间被硬编码为 1 分钟。因此,您的假设是正确的:一个非常大的核心或数百个核心可能会由于加载此特定核心的时间过长而阻止节点启动。在下一个补丁版本(4.5.6、4.6.1)中,我们通过在 dse.yaml 中创建一个新选项 load_max_time_per_core 来解决此问题。此选项允许您增加核心加载的最大等待时间,从 1 分钟开始。例如,对于 500 个内核,您需要将 load_max_time_per_core 增加到大约 3 分钟。

    问题 #2: 不幸的是,我不知道是什么原因造成的。我们需要有关此问题的更多信息,才能了解发生这种情况的原因。

    问题 #3:我们目前正在调查这可能是什么。

    【讨论】:

    • #1:我有数百个这样的核心,但其中大多数目前是空的。在我决定将我的数据分成更小的“碎片”之前,我有一个拥有 46 亿条记录的大核心。当时我看到了同样的异常,但我能够在 1 次重试后启动节点。无论如何,很高兴知道路上有一个修复程序。希望它会在我需要重新启动节点时遇到困难时尽快发布
    • #2 CQL 模式:tinyurl.com/l4lzaa2; Solr 架构:tinyurl.com/kuxzhje
    • 解决问题 #1 的补丁已经提交。我无法提供任何暂定的发布日期,但我相信很快就会发布。感谢 CQL 和 Solr 架构。我会尽快看看。
    • 接受这个作为解决方案,因为它回答了主要问题 (#1)。在最近发布的 DSE 4.6.1 中,我能够确认答案中提到的修复确实解决了问题
    • 嗨,您介意发布 solrconfig.xml 吗?请您在问题 #3 中发布引发强制转换异常的 solrconfig.xml 吗?我假设 schema.xml 和 cql 模式与问题 #2 相同(已发布)。谢谢!
    【解决方案2】:

    关于问题 #2,您确定您的 solrconfig 中没有带有错误预热查询的 QuerySenderListener 吗?

    【讨论】:

    • 嗯...我在我的 solrconfig 中看到了这个块:<listener event="firstSearcher" class="solr.QuerySenderListener"><arr name="queries"><lst><str name="q">static firstSearcher warming in solrconfig.xml</str></lst></arr></listener>,而且我碰巧有一些具有数字默认搜索字段的小核心(所以这很可能是导致它的原因;当我重新加载这些核心时,我会确认)。但是,我不记得在我的配置中添加了这个块。这是默认包含的吗?
    • 顺便说一句,解决这个问题的正确方法是什么?我应该简单地注释掉<str name="q"> 块吗?我在所有内核中使用相同的配置文件
    • 只需注释掉整个监听器或提供适当的预热查询 (q)。
    • 赞成这个让我找到问题 #2 的原因
    猜你喜欢
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2015-10-20
    • 1970-01-01
    • 2017-07-31
    • 2015-11-17
    • 2016-12-06
    相关资源
    最近更新 更多