1

我们刚刚发布了对 DSE SOLR 集群架构的更改。我们尝试在此节点上重新加载核心,但无法加载核心。然后我们排干并停止 DSE。在启动时,我们得到以下异常:

 INFO 23:25:52,673 Configuring index commit log for linkcurrent_search.content
java.lang.RuntimeException: javax.management.InstanceAlreadyExistsException: com.datastax.    bdp:type=CommitLog-linkcurrent_search.content
    at com.datastax.bdp.util.JMXUtil.registerMBean(JMXUtil.java:36)
    at com.datastax.bdp.cassandra.index.solr.AbstractSolrSecondaryIndex.init(AbstractSolrSecondaryIndex.    java:183)
    at org.apache.cassandra.db.index.SecondaryIndexManager.addIndexedColumn(SecondaryIndexManager.    java:267)
    at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:271)
    at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:378)
    at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:350)
    at org.apache.cassandra.db.Table.initCf(Table.java:329)
    at org.apache.cassandra.db.Table.<init>(Table.java:272)
    at org.apache.cassandra.db.Table.open(Table.java:109)
    at org.apache.cassandra.db.Table.open(Table.java:87)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:276)
    at com.datastax.bdp.server.DseDaemon.setup(DseDaemon.java:351)
    at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:381)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:212)
Caused by: javax.management.InstanceAlreadyExistsException: com.datastax.bdp:type=CommitLog-    linkcurrent_search.content
    at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(    DefaultMBeanServerInterceptor.java:1898)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(    DefaultMBeanServerInterceptor.java:966)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(    DefaultMBeanServerInterceptor.java:900)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor    .java:324)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
    at com.datastax.bdp.util.JMXUtil.registerMBean(JMXUtil.java:32)
    ... 17 more
Cannot load daemon

更新

只是尝试将solr.data目录移开以查看问题是否存在并且没有帮助。

我也尝试移动 commitlog 目录,但没有骰子。

如果我禁用 SOLR ,节点启动。

4

1 回答 1

4

升级到最新的 DSE 3.2.x 时,添加新列/字段时会发生冲突,因为实现 Solr 二级索引的类的名称在版本之间发生了变化:这导致了上述问题。

DSE 3.2.2 将解决此问题,但同时您可以按照给定的步骤操作:

  1. 在禁用 Solr 的情况下重新启动节点。
  2. 通过 CQLSH 描述您的架构并使用相关的 Cassandra 二级索引识别添加的列:您会注意到类名与现有索引不同。
  3. 删除每个新索引并使用完全相同的名称再次创建,但更改类名以匹配旧索引。
  4. 在启用 Solr 的情况下重新启动,一切正常。
于 2013-12-11T12:26:25.807 回答