升级到DSE 4.6 endpoint_snitch问题

时间:2014-12-04 17:29:47

标签: datastax-enterprise

我正在测试升级到4.6,并且窃听器似乎有变化。 4.5用得很好。

endpoint_snitch: com.datastax.bdp.snitch.DseDelegateSnitch

在cassandra.yaml文件中配置,但4.6无法启动。我可以开始的唯一方法是使用其中一个经典的小故障,但是我必须配置我的数据中心名称等等......如何使用DseDelegateSnitch。

当我使用DseDelegateSnitch时,我在上面的配置中收到以下错误。

Fatal configuration error
org.apache.cassandra.exceptions.ConfigurationException: DseDelegateSnitch is now handled automatically; please set endpoint_snitch in cassandra.yaml to any valid IEndpointSnitch (probably whatever is configured for delegated_snitch in dse.yaml).  Also remove delegated_snitch from dse.yaml if it is still set there.
        at com.datastax.bdp.config.DseConfigurationLoader.loadConfig(DseConfigurationLoader.java:47)
        at org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:136)
        at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:112)

当我使用诸如propertyfilesnitch之类的小报时,节点将启动。

提前致谢。

解决方案更新

我在dse.yaml文件中没有委托告密者,但我在cassandra.yaml中确实有DseDelegateSnitch。我跑了这个:

sed -r 's/DseDelegateSnitch/DseSimpleSnitch/g' /etc/dse/cassandra/cassandra.yaml

我又回来了。

感谢Datastax的Docs团队!

2 个答案:

答案 0 :(得分:4)

告密者的升级说明如下:http://datastax.com/documentation/upgrade/doc/upgrade/datastax_enterprise/upgradeTo4_6.html

从DataStax Enterprise 4.6开始,端点小调在cassandra.yaml中设置,而不是在dse.yaml中。从dse.yaml和

添加emove delegated_snitch设置

程序

按照常规升级过程中的步骤操作,直到启动节点。

  • 在文本编辑器中打开cassandra.yaml。
  • 将endpoint_snitch选项设置为您设置的snitch dse.yaml中的delegated_snitch。

    DataStax Enterprise 4.6现在可以自动处理委派的小偷。如果dse.yaml中的旧delegated_snitch设置为com.datastax.bdp.snitch.DseDelegateSnitch,请将cassandra.yaml中的endpoint_snitch设置为com.datastax.bdp.snitch.DseSimpleSnitch。

endpoint_snitch: com.datastax.bdp.snitch.DseSimpleSnitch

  • 在文本编辑器中打开dse.yaml并删除delegated_snitch 选项。
  • 对cluser中的每个节点重复这些步骤。

答案 1 :(得分:3)

如错误所示,您需要将delegated_snitch设置移出dse.yaml并在cassandra.yaml中设置。

升级时,您真的要从新版本的默认dse.yaml和cassandra.yaml文件开始,并合并您所做的任何更改。默认设置和配置通常会在主要版本之间发生变化。