我正在测试升级到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团队!
答案 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设置程序
按照常规升级过程中的步骤操作,直到启动节点。
将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
答案 1 :(得分:3)
如错误所示,您需要将delegated_snitch设置移出dse.yaml并在cassandra.yaml中设置。
升级时,您真的要从新版本的默认dse.yaml和cassandra.yaml文件开始,并合并您所做的任何更改。默认设置和配置通常会在主要版本之间发生变化。